gpt4 book ai didi

matlab - 为什么 Matlab 在脚本为 "warmed up"后运行得更快?

转载 作者:太空宇宙 更新时间:2023-11-03 19:07:59 25 4
gpt4 key购买 nike

我注意到我第一次运行脚本比第二次和第三次花费的时间要多得多1。提到“热身”in this question没有解释。

为什么代码“预热”后运行速度更快?

我没有在两次调用之间清除所有2,但是每次函数调用的输入参数都会发生变化。有人知道为什么吗?


<子>1. 我的驾照是本地的,所以不是驾照检查的问题。

<子>2. 实际上,如果我clear all,行为不会改变。

最佳答案

它在第一次后运行得更快的一个原因是很多东西都被初始化一次,它们的结果被缓存起来并在下一次重用。比如在M端,变量可以定义为persistent在可以是 locked 的函数中.这也可能发生在 MEX 上- side的事情。

此外,许多依赖项在第一次加载后会保留在内存中以供重复使用。这包括 M 函数、OOP 类、Java 类、MEX 函数等。这适用于内置和用户定义的。

例如发出以下 command第一次运行脚本之前和之后,然后比较:

[M,X,C] = inmem('-completenames')

注意 clear all 不一定 clear以上所有,更不用说锁定功能了...

最后让我们不要忘记加速器的作用。不是每次调用函数时都解释 M 代码,而是在运行时将其编译成机器代码指令。 JIT 编译仅在第一次调用时发生,因此理想情况下,后续运行目标代码的效率将克服每次运行时重新解释程序的开销。

关于matlab - 为什么 Matlab 在脚本为 "warmed up"后运行得更快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16873733/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com