我想知道是否有办法知道用 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(使用前将#替换为@)