Execution times and the "pause" function
6 次查看(过去 30 天)
显示 更早的评论
I have a question about a strange phenomenon I have been noticing for some time whilst working with Matlab and which has now become somewhat acute.
When I run scripts which are relatively demanding on my computer, pausing and immediately unpausing the execution weirdly appears to speed up the execution of the rest of the script.
The current example is this:
I am running a simulation model, which is essentially just one big loop representing simulation periods
. Within this loop there is another loop which is entered only under a certain condition. If this second loop is entered in some simulation period t, the simualtion of this particular period naturally takes longer than that of the other ones as more operations are executed.
. Within this loop there is another loop which is entered only under a certain condition. If this second loop is entered in some simulation period t, the simualtion of this particular period naturally takes longer than that of the other ones as more operations are executed.Essentially the programm looks like this:
for t=1:T
do stuff
if condition holds
for tt=1:TT
do more stuff
end
end
end
The problem I have is the following: After the second, inner loop is entered, all following simulation periods take longer to execute, even when the condition does not hold. I have gone into debug mode and can 100% confirm that the second loop is not entered in other simulation periods. Nevertheless those periods take longer to execute after the second loop has been entered once in a previous period.
Additionally, if i pause the execution of the script manually after the second loop has been entered and exited again and then continue, the script speeds back up and the rest of the periods are simulated at the usual speed. More generally, I often find that if a script runs slowly I can speed it up significantly by pausing and unpausing.
Does anyone know what might be causing this?
PS: After some additonal experimentation it seems that this phenomenon only occurs if I click the pause button in the GUI, i.e. if I enter debug mode and then pess continue. Simply inserting pause(n) under some condition into the script does not cause this change in execution speeds.
5 个评论
Mike Croucher
2025-1-30
This sounds very strange...and must be frustrating for you! Would it be possible for you to be able to send me a script that exhibits this behaviour for you so I can reproduce it and get it reported to development please?
Mike Croucher
2025-1-30
Also, does this happen with the normal desktop in R2024b or the new Desktop beta?
回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Loops and Conditional Statements 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!