gpt4 book ai didi

MATLAB 魔法之谜时序行为

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

我在编写的函数中遇到了一些非常奇怪的计时行为。如果我将我的函数包装在另一个空容器函数中,它会获得 3 倍的加速。

>> tic; foo(args); toc

耗时:~140 秒

>>tic; bar(args); toc

耗时:~35 秒

这是关键 - bar() 的定义:

define bar(args)

foo(args)

结束

MATLAB 中是否触发了某种优化?对于嵌套函数调用?我应该为我编写的每个函数添加一个虚拟函数吗?

最佳答案

据我所知,JIT 加速器不对命令行表达式进行操作。因此,当您运行“tic; foo(args); toc”时,foo 的代码完全在 MATLAB 解释器中运行。但是,当您运行“tic; bar(args); toc”时,bar 会在解释器中求值,并且 JIT 加速器会尝试将对 foo() 的调用编译为 native 代码。

我真的对细节挥手不语,但这就是它的要点。 MATLAB 的 JIT 功能的详细信息很难获得;我发现的大部分内容都在 The MathWorks 的 Loren 博客上。我能找到的关于命令行仅供解释器使用的最接近的权威声明如下: http://blogs.mathworks.com/loren/2006/05/10/memory-management-for-functions-and-variables/#comment-207

关于MATLAB 魔法之谜时序行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1313438/

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