我有两个.m
个文件,我们完全相同的代码,但性能不同。
l(1:101) =(V(2:101)-V(1:100))/del_k;
l(102:201) =(V(102:201)-V(101:200))/del_k;
对于有问题的行,profiler
告诉我,对于慢代码(顶行)mupadmex (MEX-file) 34(calls) 0.296s(total time) 0.293s (self time)
。
但对于快速代码,它是display (built-in function) 1(calls) 0.019s(total time) 0.019(self time)
。
另一个区别:在慢速代码中,分析器列出了很多行,其中在快速代码中只有这一行。
重点是:我正在使用n=10000
运行迭代。快速代码需要10k 2.5秒,而慢速代码需要2secs(n=1
)。
不知道该怎么做。探查者将我指向位于Self time (built-ins, overhead, etc.) 1.774s(total time) 98.1%(Time)
顶部的Children (called functions)
。