相关疑难解决方法(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.没有解释的情况下,在这个问题中提到 "热身" .

为什么代码在"预热"后运行得更快?

我不在clear all调用2之间,但每个函数调用的输入参数都会改变.有人知道为什么吗?


1.我在本地获得了许可证,因此这不是与许可证检查有关的问题.

实际上,如果我,行为不会改变clear all.

benchmarking matlab warm-up

19
推荐指数
1
解决办法
2776
查看次数

标签 统计

matlab ×2

benchmarking ×1

performance ×1

warm-up ×1