【发布时间】:2013-04-10 04:36:37
【问题描述】:
我惊讶地发现运行 MATLAB for 循环之间的成本差异如下:
ksize = 100;
klist = 1:ksize;
tic
for m = 1:100000
for k = 1:ksize
end
end
toc
tic
for m = 1:100000
for k = klist
end
end
toc
唯一的区别是创建索引列表的方式。我会怀疑第二个版本会更快,但是瞧!
Elapsed time is 0.055400 seconds.
Elapsed time is 1.695904 seconds.
我的问题是双重的:是什么导致了上述结果,以及这种细微差别(或类似的细微差别)在 MATLAB 编程中还出现在哪里?我希望将来能够更好地发现这些低效率。谢谢大家。
【问题讨论】:
-
这可能是由于 JIT 加速造成的,因为如果您使用
feature accel off将其关闭,则两次运行都会得到相似的结果。
标签: performance matlab for-loop indexing