What's the cost of overwriting a variable versus clearing it every time it changes?

19 次查看(过去 30 天)
As someone who wants to optimize the performance of his code, I want to know if it is more efficient to clear a variable each time I know it will be overwritten (e.g. a "temp" in a loop, or if the name is reused later) OR if the act of telling Matlab to instantiate a variable of the same name every time I will overwrite actually hurts more than it hurts.
I can't reason whether giving Matlab the "freedom" of choosing memory for each instantiation is good or if it is better to overwrite data to a designation of memory that already exists.
P.S. This would be using the "clear" command if that makes any difference.
Thanks!
  1 个评论
Stephen23
Stephen23 2017-7-25
编辑:Stephen23 2017-7-25
Why not simply read the documentation, which states clearly: "Avoid clearing more code than necessary. Do not use clear all programmatically. For more information, see clear."

请先登录,再进行评论。

采纳的回答

per isakson
per isakson 2017-7-24
编辑:per isakson 2017-7-25
Comments
and the answer is that clear hurts badly (in the simple case below)
N = 1e6;
tic
val = 17;
for jj = 1 : N
val = jj;
end
toc
tic
for jj = 1 : N
clear val
val = jj;
end
toc
returns
Elapsed time is 0.005792 seconds.
Elapsed time is 17.567347 seconds.
using R2016a (in response to a comment)

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Problem-Based Optimization Setup 的更多信息

产品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by