我需要分析一个用 C++ 编写的库的内存需求,因为硬件工程师需要对我们硬件的内存需求有所了解,正在研究中。我可以测量堆大小峰值,我可以测量堆栈大小,但我不知道如何估计/测量数据段大小和 Bss 大小。Visual Studio 或 GCC 中有什么方法吗?我认为它会因编译器和平台而异,但估计对我来说很好。
2228 次
3 回答
4
有一个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-02T13:28:00.830 回答
2
于 2015-03-02T13:28:11.793 回答
2
您可以使用它objdump
来获取 Linux 系统上的文本、数据和 bss 段的大小。您可以检查.bss
和.text
部分的输出。
有关更详细的说明,请参见此处。
于 2015-03-02T13:30:21.667 回答