On a Linux/Unix system, you can use the size
command for this, e.g. on my Ubuntu system
size /bin/sh
text data bss dec hex filename
102134 1776 11272 115182 1c1ee /bin/sh
Since this is OpenWrt, if you have a different architecture, e.g. MIPS or ARM or something else, you must pick the size
command of the appropriate toolchain, of course.
The sections have the following meaning
text
denotes the code size of the executabledata
is initialized data section, e.g. variables, likeint v = 17;
orchar name[] = "Tom";
bss
is the uninitialized or simply0
initiailized section,int a;
ordouble amount;
dec
is the overall size, in this case102134 + 1776 + 11272 = 115182
hex
finally is also the overall size, as a hex value1c1ee = 115182
But this does not include the stack or any dynamic heap memory. To see the overall memory usage at runtime, you must look at ps
or top
output.