如何知道我的二进制可执行文件的内存占用量

2024-04-01

我想知道是否有办法知道用 C 语言编码的二进制可执行文件的内存占用量。

有关二进制可执行文件的信息:使用OpenWrt分支(Attitude Adjustment)的工具链编译,架构为x86


在 Linux/Unix 系统上,您可以使用size http://linux.die.net/man/1/size为此的命令,例如在我的 Ubuntu 系统上

size /bin/sh
   text    data     bss     dec     hex filename
 102134    1776   11272  115182   1c1ee /bin/sh

由于这是 OpenWrt,如果您有不同的架构,例如MIPS 或 ARM 或其他,你必须选择size当然,可以使用适当的工具链。

各个部分的含义如下

  • text表示可执行文件的代码大小
  • data是初始化的数据部分,例如变量,例如int v = 17; or char name[] = "Tom";
  • bss是未初始化的或简单的0初始化部分,int a; or double amount;
  • dec是整体尺寸,在本例中102134 + 1776 + 11272 = 115182
  • hex最后也是整体大小,以十六进制值表示1c1ee = 115182

但这不包括堆栈或任何动态堆内存。要查看运行时的总体内存使用情况,您必须查看ps http://man7.org/linux/man-pages/man1/ps.1.html or top http://man7.org/linux/man-pages/man1/top.1.html output.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何知道我的二进制可执行文件的内存占用量 的相关文章

随机推荐