首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TIC TOC或Profiler

TIC TOC或Profiler
EN

Stack Overflow用户
提问于 2014-09-13 10:51:01
回答 2查看 927关注 0票数 2

我正在编写一些计算时间很重要的代码。我使用tic toc函数和profiler来测量时间。他们之间有什么区别?

对于我的一段代码,tic toc函数声明,例如,时间是3秒,但在profiler中,我的所有代码行的时间之和并不多!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-09-13 11:22:10

TIC TOCprofiler做的事情完全不同。

TIC TOC测量从TIC调用到TOC调用的经过时间。这包括tic函数本身的一些开销,对于非常遗憾的间隔,并不完全可靠。

分析器测量代码中每个函数执行的cpu时间。这不包括当前不执行任何功能的停机时间( cpu正在执行其他任务,包括运行matlab代码)。

为了确保时间的精确计算,你还应该做其他的事情:

  1. 将代码包装在一个函数中,以确保它是JIT编译的。
  2. 通过在分析之前运行它一次来预热函数。
  3. 多次运行代码并平均运行时间。
  4. 运行tic/toc函数多次,平均结果,并从您的总时间中减去。
  5. 如果可能,在任何循环之外分配数组,而不是附加到数组中。
票数 2
EN

Stack Overflow用户

发布于 2014-09-13 13:32:43

分析器可以很好地找到代码中的瓶颈,并比较不同算法的相对时间,但我不相信它能给出准确的绝对时间。

首先,使用分析器将禁用许多JIT优化,因此代码很可能不会以正常的方式运行。

使用tictoc进行计时可能非常微妙,因为您需要对代码进行预热并运行几次才能获得平均值。

我建议您使用timeit,它为您处理所有这些微妙之处。在最近的版本中,timeit是核心MATLAB的一部分。如果您使用的是旧版本,则可以使用中的下载它

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25822459

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档