问题描述
- 我能否借助
fseek()
函数测量代码大小并将其存储到 shell 变量中? - 是否可以使用
milepost gcc
或GNU Profiler 工具
提取代码大小、编译时间和执行时间?如果是,如何将它们存储到 shell 变量中?
- Can I measure the code size with the help of an
fseek()
function and store it to a shell variable? - Is it possible to extract the code size, compilation time and execution time using
milepost gcc
or aGNU Profiler tool
? If yes, how to store them into shell variables?
由于我的目标是在编译时间、执行时间和代码大小的基础上找到最佳优化技术,因此我期待一些可以返回这些参数的函数.
Since my aim is to find the best set of optimization technique upon the basis of the compilation time, execution time and code size, I will be expecting some function that can return these parameters.
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
中.同样,我想获取代码大小和编译时间的值.我会更喜欢我可以做的事情来完成这项工作,而无需使用外部程序!
This will store the execution time to the variable Val
. Similarly, I want to get the values of code size as well as compilation time.I will prefer something that I can do to accomplish this, without using an external program!
推荐答案
对于 linux 上的代码大小,您可以在终端上使用 size 命令.$size 文件名.out
for code size on linux, you can use size command on terminal.$size file-name.out
它将给出不同部分的大小.将文本部分用于代码大小.如果您还想考虑全局数据大小,您可以使用 data 和 bss.
it will give size of different sections. use text section for code size. you can use data and bss if you want to consider global data size as well.
这篇关于是否有方法/函数可以获取使用 GCC 编译器编译的 C 程序的代码大小?(应用某些优化技术时可能会有所不同)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!