【发布时间】:2012-01-10 18:33:41
【问题描述】:
我正在编写一个MATLAB 应用程序,它具有分布在不同文件中的许多功能。我有一个记录器,它是一个带有函数指针的结构体,我用它来记录信息供用户查看(即当前正在执行的函数、计算结果等)。我为我的记录器使用结构而不是简单的fprintf() 的原因是我将来可以轻松地将其替换为 XML 记录器、HTML 记录器等。
由于我的代码由许多相互调用的函数组成,我将我的 logger 结构声明为全局的,因此我不必将它传递给我的所有函数。但是,无论在哪里,我都发现全局变量在 MATLAB 中是邪恶的化身,会大大降低我的程序速度。
有没有一种方法可以跨文件使用变量,而不必将它们作为输入参数传递,并且不会遭受严重的性能损失?
【问题讨论】:
-
全局变量不是“邪恶的”。如果您不是经验丰富的程序员,它们只会产生许多错误,例如重载其他变量等。此外,我不相信 Matlab 中的全局变量会影响性能。如果使用全局变量让你的生活“非常”轻松,那就使用它们。尽量不要让它成为一种习惯。
-
@Jorge 任何程序员,不仅仅是没有经验的程序员。但除此之外,是的。
-
@Jorge - 您使用全局变量与将变量传递给方法的标准是什么?
-
你可以看看使用application data。我只在制作 GUI 时使用过它,但它在其他情况下也可能有用。
标签: performance matlab global-variables