gpt4 book ai didi

performance - 在 MATLAB 中使用全局变量会影响性能吗?

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

据我所知,MATLAB 在向其他函数发送参数时不能使用通过引用传递。我正在做音频处理,我经常需要将波形作为参数传递给函数,因为 MATLAB 使用按值传递这些参数,所以当我这样做时它确实占用了大量 RAM。

我正在考虑使用 global 变量作为将我的波形传递给函数的方法,但在我读到的所有地方,似乎普遍认为这对于代码组织来说是个坏主意,并且潜在的性能问题......但我还没有真正阅读任何关于这可能如何影响性能的详细答案......

我的问题:在 1) 方面,使用全局变量(大小 > 100MB)将参数传递给 MATLAB 中的其他函数有什么负面影响性能2) 一般代码组织和良好实践

编辑: 从下面@Justin 的回答可以看出,当您不修改函数内的参数时,MATLAB 有时会使用引用传递!由此,我有一个关于全局变量性能的第二个相关问题:

使用全局变量会比使用通过引用传递函数参数慢吗?

最佳答案

MATLAB 确实使用按引用传递,但也使用写时复制。也就是说,您的变量将通过引用传递给函数(因此不会在 RAM 上加倍),但是如果您在函数内更改变量,则 MATLAB 将创建一个副本并更改副本(留下原来不受影响)。

这个事实似乎不太为人所知,但有一个 good post on Loren's blog正在讨论。

底线:听起来您根本不需要使用全局变量(正如@Adriaan 所说,这是个坏主意)。

关于performance - 在 MATLAB 中使用全局变量会影响性能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34450891/

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