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
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 = 115182hex finally is also the overall size, as a hex value 1c1ee = 115182But 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.
 
    
    Use the Command size <binary> to get the memory footprint of your binary executable.
Check the size manual (man size) for more information.