//获取推断时间
vector<double>layterTimings;
double freq = getTickFrequency() / 1000; //得到ms
double time = net.getPerfProfile(layterTimings) / freq; //layterTimings=每一层执行时间;每一层执行时间/freq=总的执行时间
ostringstream ss;
ss << "infernece:" << time << "ms";
putText(src, ss.str(), Point(10, 30), FONT_HERSHEY_SIMPLEX, 1, Scalar(255, 0, 0), 2, 8);

  

是怎么得出来的呢?下面简要介绍一下

时间计算:

getTickCount():用于返回从操作系统启动到当前所经的计时周期数,看名字也很好理解,get Tick Count(s)。
getTickFrequency():用于返回CPU的频率。get Tick Frequency。这里的单位是秒,也就是一秒内重复的次数。 所以剩下的就很清晰了:
总次数/一秒内重复的次数 = 时间(s)
1000 *总次数/一秒内重复的次数= 时间(ms) 这个逻辑很清晰,没什么问题,但是这里有一个小坑,那就是C版本的cvGetTickFrequency()函数和C++版本的getTickFrequency()的单位不一样,前者以ms计算频率,后者以s为单位计算频率,所以如果使用C版本的cvGetTickFrequency()计算时间的话,应该是:
总次数/一秒内重复的次数*1000 = 时间(ms)
总次数/一秒内重复的次数*1000000 = 时间(s)
double freq = getTickFrequency() / 1000;  //得到ms
double time = net.getPerfProfile(layterTimings) / freq; //layterTimings=每一层执行时间;每一层执行时间/freq=总的执行时间

函数详细信息可参考https://blog.csdn.net/you_big_father/article/details/90604390

参考:https://blog.csdn.net/chaipp0607/article/details/71056580

最新文章

  1. java 经典程序 100 例
  2. 基于Vue封装分页组件
  3. mSites and Smarty
  4. JZs3c2440裸板程序GPIO操作总结
  5. 配置youcompleteme碰到的问题
  6. ARM学习笔记12——GNU ARM汇编伪操作
  7. POJ 1039 Pipe 枚举线段相交
  8. 什么是AAC音频格式 AAC-LC 和 AAC-HE的区别是什么
  9. 单纯觉得是篇好文——跨终端Web之Hybrid App
  10. 解决maven 下载 hadoop-client 客户端 报错的问题
  11. 在自定义目录下,按日期创建excel文件
  12. ROWNUM = 1 to replace count(*)
  13. Tomcat性能调优 通过ExpiresFilter设置资源缓存
  14. class FrameHandlerMono : public FrameHandlerBase
  15. 在MyEclipse中使用javadocAPI文档
  16. java super的用法
  17. 18个不常见的C#关键字,您使用过几个?
  18. PHP header函数设置http报文头示例详解
  19. OCR论文整理
  20. linux系统学习(一)

热门文章

  1. BZOJ2326 [HNOI2011]数学作业(分块矩阵快速幂)
  2. MongoDB疑难解析:为什么升级之后负载升高了?
  3. Centos7更改屏幕显示率
  4. k8s系列---存储卷pv/pvc。configMap/secert
  5. windows运行shell脚本
  6. [jQuery]jQuery和DOM对象(三)
  7. display:table的用法
  8. console控制台的用法
  9. 获取Data和Log默认路径
  10. O2O外卖玩众包 开放平台难解标准之痛