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

因为我的目标是在编译时间,执行时间和代码大小的基础上找到最佳的一组优化技术,所以我会期待一些可以返回这些参数的函数。是否有方法/函数来获取使用GCC编译器编译的C程序的代码大小? (在应用某种优化技术时可能会有所不同)

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

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

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

+1

如何将文本部分的值存储到shell变量中? –

1

在非Linux /非GNU-utils的系统(其中可能必须既不GNU size也不readelf),则nm程序可以用于转储从对象文件(库/可执行文件)符号信息(包括尺寸)。语法稍有取决于系统:

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

相关问题