zer*_*ord 11 performance profiler matlab profiling for-loop
所以,我最近开始定期使用Matlab的内置分析器,我注意到虽然它通常很好地显示哪些线占用了最多的时间,但有时它会告诉我大量的时间正在循环end语句中使用for.
现在,看到这样一条线只是用来表示循环的结束,我无法想象它如何使用除了微不足道的处理之外的任何东西.
我已经在matlab中心看到了这个问题的特定版本,但似乎没有达成共识.
编辑:这是这个问题的最小例子:
for i =1:1000
x = 1;
x = [x 1];
% clear x;
end
Run Code Online (Sandbox Code Playgroud)
即使您取消注释clear,该end行仍然需要大量计算(大约20%),并且clear实际上增加了结束行执行的绝对计算量.
当我在我的代码中看到这个时,就是在循环中创建的大型临时代码的重新分配.在循环中创建的每个新变量都在该处释放end.