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帮助文档。
博客新手,还望大家多多关注 !
如有帮助,还望不吝打赏。