我有一个函数可以生成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);
}
Run Code Online (Sandbox Code Playgroud)
如何使用C/C++获取此函数的执行时间?
代码分析不是一项特别容易的任务(或者,正如我们常说的那样,它是"非平凡的".)问题是因为以秒为单位测量的"执行时间"并不是特别准确或有用.
您要做的是测量CPU周期数.这可以使用外部工具完成,例如callgrind(Valgrind的工具之一).有99%的可能性就是你想要的.
如果你真的想在代码中自己做,那你就要完成一项相当困难的任务.我亲自了解 - 我用C++编写了一个比较基准测试库,用于实时性能测试.
如果您真的想走这条路,您可以研究基于英特尔处理器(主要是转移到AMD)或您使用的任何处理器的基准测试.但是,正如我所说,该主题是大而深入的,远远超出了StackOverflow答案的范围.
| 归档时间: |
|
| 查看次数: |
268 次 |
| 最近记录: |