我需要对用C++编写的一个库的内存需求进行分析,因为HW工程师需要了解我们硬件的内存需求。我可以测量堆大小峰值,我可以测量堆栈大小,但是我不知道如何估计/测量数据段大小和Bss大小。或GCC有什么方法吗?我假设它会因编译器和平台的不同而有所不同,但对我来说,估计是可以的。
发布于 2015-03-02 13:28:11
发布于 2015-03-02 13:28:00
有一个size实用程序。例如,对于ARM MCU项目,可以是这样的:
arm-none-eabi-size --format=sysv "program_name.elf"示例输出:
program_name.elf :
section size addr
.text 14516 0
.data 160 268435456
.bss 1328 268435616
.stack 2528 268436944
.debug_aranges 2384 0
.debug_info 40951 0
.debug_abbrev 8870 0
.debug_line 27790 0
.debug_frame 6664 0
.debug_str 42157 0
.debug_loc 7074 0
.debug_macinfo 426030 0
.ARM.attributes 47 0
.debug_ranges 1760 0
.comment 96 0
.debug_macro 9236 0
Total 591591发布于 2015-03-02 13:30:21
您可以使用objdump获取Linux系统上文本、数据和bss段的大小。您可以检查.bss和.text部分的输出。
有关更详细的解释,请参见这里。
https://stackoverflow.com/questions/28810727
复制相似问题