【问题标题】:Measure CPU time usage in Matlab (in milliseconds)在 Matlab 中测量 CPU 时间使用情况(以毫秒为单位)
【发布时间】:2014-05-14 19:11:04
【问题描述】:

如何测量 Matlab 执行某些命令所用的时间?我正在寻找类似 linux time 命令的东西,它返回实际使用的 CPU(用户 + sys),而不是总时间,这可能会因其他进程的系统使用情况而异。

另外,时间应该以毫秒为单位返回。

【问题讨论】:

    标签: matlab


    【解决方案1】:

    你可以使用cputime:

    CPUTIME 以秒为单位的 CPU 时间。 CPUTIME 返回已使用的 CPU 时间(以秒为单位) 自 MATLAB 启动以来的 MATLAB 进程。

    例如:

       t=cputime; your_operation; cputime-t
    

    返回用于运行 your_operation 的 CPU 时间。

    返回值可能会溢出内部表示 并环绕。

    还有timeit

    你也可以使用tic/toc(见Daniel's answer)。

    有关测量 CPU 时间的信息,请参阅 some useful comments。根据上面的链接,tic / toctimeit 给出的估计比cputime 更准确。

    【讨论】:

    • 我担心溢出警告。有没有办法绕过这个?
    • 无论何时环绕,cputime - t 都不会给出正确答案。
    【解决方案2】:

    对于简单的时钟时间解决方案,请使用 tictoc

    profile提供每行详细的报告代码,可以选择cpu时间和实时。

    【讨论】:

    • 根据我的阅读,tictoc 返回实时而不是 CPU 时间。至于profile,我只需要cpu时间,看来profile收集了一堆我不需要的其他信息。这不会影响性能吗?
    • @becko:分析器增加了显着的开销,这在报告中没有显示。
    猜你喜欢
    • 2010-09-26
    • 2011-12-26
    • 1970-01-01
    • 2021-12-19
    • 1970-01-01
    • 2014-03-28
    • 2022-06-28
    • 1970-01-01
    相关资源
    最近更新 更多