I wonder if there is a way to know the memory footprint of my binary executable coded in C language.
informations about binary executable : compiled with toolchain of OpenWrt branch (Attitude Adjustment) and its architecture is x86
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, like int v = 17;
or char name[] = "Tom";
bss
is the uninitialized or simply 0
initiailized section, int a;
or double amount;
dec
is the overall size, in this case 102134 + 1776 + 11272 = 115182
hex
finally is also the overall size, as a hex value 1c1ee = 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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With