我想知道是否有办法知道用C语言编码的二进制可执行文件的内存占用量。
有关二进制可执行文件的信息:使用OpenWrt分支(态度调整)的工具链编译,其架构为x86
答案 0 :(得分:10)
在Linux / Unix系统上,您可以使用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
答案 1 :(得分:2)
答案 2 :(得分:0)
top
和一个名为
的高级版htop
是监视在linux系统中运行的任何可执行文件的工具
答案 3 :(得分:0)
使用命令size <binary>
获取二进制可执行文件的内存占用量。
有关更多信息,请查看尺寸手册(man size
)。