Tag: 执行时间

gcc -g调试标志是否影响程序执行?

我刚刚测试了一个我正在工作的程序,当我用-g编译它时,我发现它的执行速度提高了3μs(统计上显着的变化)。 这对我来说毫无意义 – 我认为-g标志不应该影响程序执行,即使它做了它也会使它运行得更慢,而不是更快。 谁能告诉我为什么会这样? 它是否改变了程序的执行流程? 我没有使用-O进行编译,因为我需要它完全按照写入执行,但如果-g可以通过更改指令顺序以某种方式使其运行得更快我显然应该使用它。 所以我需要确切知道-g标志对程序的更改。 编辑:我运行的测试越多,t值越大(=差异变得越有统计意义)。 这绝对不是测量误差 – 事情正在发生。

GCC标准优化行为

在这里,我使用-O2优化级别(使用gcc 4.8.4)编译输入程序并测量执行时间: gcc -O2 -c test.c -o obj.o TIMEFORMAT=’%3R’ && time(./obj.o) execution time = 1.825 当我用-O2 https://gcc.gnu.org/onlinedocs/gcc-4.8.4/gcc/Optimize-Options等级中的GCC manuel中定义的选项列表替换-O2标志时。 html #Oftimize-这样的选项 : gcc -fauto-inc-dec -fcompare-elim -fcprop-registers -fdce -fdefer-pop -fdse -fguess-branch-probability -fif-conversion2 -fif-conversion -fipa-pure-const -fipa-profile -fipa-reference -fmerge-constants -fsplit-wide-types -ftree-bit-ccp -ftree-builtin-call-dce -ftree-ccp -ftree-ch -ftree-copyrename -ftree-dce -ftree-dominator-opts -ftree-dse -ftree-forwprop -ftree-fre -ftree-phiprop -ftree-slsr -ftree-sra -ftree-pta -ftree-ter -funit-at-a-time -fthread-jumps -falign-functions -falign-jumps […]

如何在C中以毫秒为单位获取程序的执行时间?

目前我通过调用以下命令获得程序的执行挂起时间: time_t startTime = time(NULL); //section of code time_t endTime = time(NULL); double duration = difftime(endTime, startTime); 是否有可能以毫秒为单位获得墙上时间? 如果是这样的话?