新浪博客

Matlab中测试程序运行时间方式

2016-12-07 13:10阅读:
在Matlab中,基本上有四种测试程序运行时间的方式: tic与toc组合etime(t1,t2)与clock组合cputime函数、timeit函数。这三种测试方式所依赖的原理各不相同,所以测试同一程序的时候的得到的结果也不尽相同
这里作者强烈推荐使用tic与toc组合,它所到的时间最接近MATLAB程序实际运行时间。
a. tic与toc组合 程序遇到 tic 时开始计时,遇到 toc 时结束计时,并且计算与最近的 tic 之间的时间差,得出运行时间。
1 syms x
2 f1=sin(x)*cos(x);
3 tic
4 a1=int(f1,x);
5 tic
6 a2=f1/sin(x);
7 toc
8 a3=f1+3;
9 toc
程序运行后会得到两个时间,第一个时间是 567 行运行的时间,第二个时间是运行 56789 行的时间。这里第 3 行的 tic 并没有发挥作用,因为 toc 总是自动计算与自己最近的那个 tic 的时间差,无论那个 tic 是否已经与其他 toc 搭配过.
b. etime(t1,t2)与clock组合
这里是调用电脑系统的时间,t1 时记录一个系统时间,t2 时记录一个系统时间,而 etime 取两者时间差。
1 t1=clock;
2 a=100*18/9;
3 t2=clock;
4 etime(t1,t2)
c. cputime 函数
这里所得的时间是MATLAB程序运行时占用CPU的时间。但不能准确代表MATLAB程序运行的时间。因为有CPU多核间运算分配、多线程之间运算分配、CPU内部运算优化的原因。
1 t1=cputime;
2 a=100*18/9;
3 t2=cputime;
4 t=t2-t1

这三种方式得到的MATLAB程序运行时间可能各不相同,但tic与toc组合是最接近真实时间的,tic与toc组合也是官方推荐的程序运行时间测试方式。etime(t1,t2)与clock组合与cputime函数都有各自的缺陷问题,可能会与实际有较大偏差。
当然如果你的MATLAB版本还可以,也可以使用 timeit函数。它与tic、toc组合同是MATLAB自带的计时函数。
1 f=@() Fibonacci(10); % Fibonacci(10) 是某个函数或有一个计算值(f=@() (100*9))
2 timeit(f)
具体的timeit其他用法还请读者查看MATLAB帮助文档。

博客新手,还望大家多多关注 ! Matlab中测试程序运行时间方式 如有帮助,还望不吝打赏。

我的更多文章

下载客户端阅读体验更佳

APP专享