Motivation:对程序实现测速。
初始想法是使用两点计时的方式,在程序运行语句之前设置时间点,程序运行语句之后设置时间点,然后计算二者的差值。
考虑到程序执行时间的不确定性,设置程序执行1K次。
代码如下:
//Time
clock_t first, second;
// Run
printf("rknn_run\n");
double statistics = 0;
double num = 0;
for (int i = 0; i < 1000; i++) {
first = clock();
ret = rknn_run(ctx, nullptr); #程序运行语句
second = clock();
num = (double)(second-first)/CLOCKS_PER_SEC;
printf("%d %f seconds\n", i, num);
statistics += num;
}
printf("Statistics: %f \n", statistics/1000);
发现实际上记录的时间并不正确。后面尝试寻找原因。
可以采用最原始的方法,程序循环执行一个比较大的次数,统计循环执行的总时间,然后求平均。
参考链接:
- #include 库函数详解_大米粒ing的博客-CSDN博客_#include time.h 有人总结成这么几句,的确是经典,自己好好编程试试效果吧,两个类型:time_t:表示距离 UTC 时间 1970-01-01 00:00:00 的秒数。也叫做日历时。struct tm:通常用于存储本地时。几个函数:time:获取当前系统时间(UTC时间)的time_t值。ctime:将time_t值转换为表示本地时间的字符串。gmttime:将thttps://blog.csdn.net/chenyiming_1990/article/details/8682552
- null头文件#include <time.h>clock_t start, end;//定义/*开始时间*/start = clock();......end = clock();/*结束时间*/得到运行时间double time = (double)(end - start)/CLOCKS_PER_SEC;...https://blog.csdn.net/dsbss/article/details/120937234
- #include <time.h>_迷糊小旋风的博客-CSDN博客_#include #include <time.h>clock_t clock(void);这个函数返回从“开启这个程序进程”到“程序中调用clock()函数”时之间的CPU时钟计时单元(clock tick)数。clock_t是用来保存时间的长整形数据类型。还定义了一个常量CLOCKS_PER_SEC,它用来表示一秒钟会有多少个clock tick,一般取值为1000。核心代码: double TheTimes; printf("做%ld次空循环需要的时间为",i)https://blog.csdn.net/weixin_49828466/article/details/117333648