根据其他函数的输出在函数调用中指定输入参数是否影响性能? 峰值内存使用量会受到影响吗? 如果我使用临时变量并在计算每个中间步骤后清除它们会更好吗?Matlab函数参数传递
对于前:
g=imfill(imclearborder(imdilate(Inp_img,strel('square',5))),'holes');
或
temp1=imdilate(Inp_img,strel('square',5));
temp1=imclearborder(temp1);
g=imfill(temp1,'holes');
clear temp1
这将是峰值内存使用量和速度方面比较好?
据我所知,使用函数调用只是使用隐藏的临时变量被清除。有人可能会有更深入的知识。你可以尝试两种方式并使用'profiler'来查找,并让我们知道是否有任何区别! –
我希望这两种解决方案都具有相同的内存密集性,除非JIT在两种解决方案之间进行区分。另外,如果你打算重用'temp1',那么第二种方法应该是首选的(同样,除非JIT'为了进一步计算而缓存'中间结果)。如果您使用的是Windows,请尝试打开任务管理器并检查内存使用情况的两种解决方案。 – Oleg