我想知道如何获取我用C语言编写的二进制可执行文件的内存占用情况。
关于二进制可执行文件的信息:使用OpenWrt分支(Attitude Adjustment)的工具链进行编译,其架构为x86。
关于二进制可执行文件的信息:使用OpenWrt分支(Attitude Adjustment)的工具链进行编译,其架构为x86。
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;
或char name[] = "Tom";
bss
是未初始化或简单初始化为0
的部分,例如int a;
或double amount;
dec
是总大小,即102134 + 1776 + 11272 = 115182
hex
最后也是总大小,以十六进制值表示1c1ee = 115182
ps
或 top
输出。size path/to/program.c
,但是出现了“未知格式”的错误。 - Bastienmgcc -c path/to/program.c
,您可以使用size path/to/program.o
获取大小。 - Olaf Dietschesize <binary>
获取您的二进制可执行文件的内存占用情况。
有关更多信息,请查看大小手册(man size
)。top
还有一个高级的称为
htop
这些工具用于监视在Linux系统中运行的任何可执行文件