0
  • 我可以在fseek()函数的帮助下测量代码大小并将其存储到 shell 变量中吗?
  • 是否可以使用milepost gccor提取代码大小、编译时间和执行时间GNU Profiler tool?如果是,如何将它们存储到 shell 变量中?

由于我的目标是根据编译时间、执行时间和代码大小找到最佳的优化技术集,因此我期待一些可以返回这些参数的函数。

MyPgm=/root/Project/Programs/test.c
gcc -Wall -o1 -fauto-inc-dec $MyPgm -o output
time -f "%e" -o Output.log ./output
while read line;
do
echo -e "$line";
Val=$line
done<Output.log

这会将执行时间存储到变量Val中。同样,我想获取代码大小和编译时间的值。我会更喜欢我可以做的事情来完成这个,而不使用外部程序!

4

3 回答 3

4

对于 linux 上的代码大小,您可以在终端上使用 size 命令。$size 文件名.out

它将给出不同部分的大小。使用文本部分的代码大小。如果您还想考虑全局数据大小,则可以使用 data 和 bss 。

于 2012-11-21T11:20:31.360 回答
3

您可以使用size(1)命令http://www.linuxmanpages.com/man1/size.1.php

或者打开 ELF 文件,遍历节标题并将所有具有 SHT_PROGBITS 类型和 SHF_EXECINSTR 标志集的节的大小相加。

于 2012-11-21T07:29:55.903 回答
1

在非 Linux/非 GNU-utils 系统(您可能既没有 GNUsize也没有 GNU 工具readelf)上,该nm程序可用于从目标文件(库/可执行文件)中转储符号信息(包括大小)。语法稍微依赖于系统:

不幸的是,虽然该实用程序几乎在任何地方都可用,但它的输出格式并不像可以移植的那样可移植,因此需要一些特定于系统的脚本。

于 2012-11-22T09:31:29.713 回答