我有一个函数可以生成 10000 个随机数并将它们写入文件中。
void generator(char filename[])
{
int i;
int n;
FILE* fp;
if((fp=fopen(filename,"w+"))==NULL)
{
printf("Fail creating file!");
}
srand((unsigned)time(NULL));
for(i=0;i<10000;i++)
{
n=rand()%10000;
fprintf(fp,"%d ",n);
}
fclose(fp);
}
如何使用 C/C++ 获取该函数的执行时间?
最佳答案
代码分析并不是一项特别容易的任务(或者,正如我们在编程中常说的那样,它“不平凡”。)问题是因为以秒为单位测量的“执行时间”并不是特别准确或有用。
您想要做的是测量CPU 周期数。这可以使用外部工具来完成,例如 callgrind(Valgrind 的工具之一)。 99% 的可能性这就是您想要的。
如果您真的想在代码中自己完成此操作,那么您正在执行一项相当困难的任务。我有第一手资料 - 我用 C++ 编写了一个比较基准测试库,用于即时性能测试。
如果您真的想走这条路,您可以研究英特尔处理器(主要延续到 AMD)或您使用的任何处理器的基准测试。然而,正如我所说,这个主题很大而且很深入,远远超出了 StackOverflow 答案的范围。
关于c++ - C/C++中如何获取函数的执行时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36556537/