相关疑难解决方法(0)

在Matlab循环中做某事比使用变量做任何事情都要快

在分析平凡循环的速度的过程中,我遇到了这种奇怪的现象.

对变量不做任何事情要比使用变量做得慢得多.

当然这不是一个真正的问题,因为你不会经常感觉到编写什么都不做的代码的冲动,但这让我感到惊讶,所以我想知道是否有人理解发生的事情以及这在实际情况下是否会成为一个问题.

这是我发现的:

     tic,for t= 1:1e6, x=x; end,toc %This runs very fast, about 0.07 sec
y=x; tic,for t= 1:1e6, y=x; end,toc %This runs fast, about 0.11 sec
     tic,for t= 1:1e6, x; end,toc   %This takes over half a second?!
Run Code Online (Sandbox Code Playgroud)

我尝试在循环中添加一个简单的计算,以确保循环不会被优化掉,但这并没有改变结果.


总结一下,我的问题是:

发生了什么,我应该担心吗?

performance matlab

20
推荐指数
2
解决办法
294
查看次数

标签 统计

matlab ×1

performance ×1