LabVIEW中局部变量、全局变量和引用及属性节点的相关

局部变量和全局变量

首先,使用局部变量和全局变量不符合数据流的思维方式,在不同的地方使用局部变量和全局变量,对于大的成语而言,不易判断数据的流向和操作的先后顺序,隐藏着“竞争”的危险。

基于性能考虑,局部变量会复制数据缓冲区。从一个局部变量读取数据时,便为相关控件的数据创建了一个新的缓冲区。如此类推,将会大大增加内存开销。如使用局部变量将大量数据从程序框图上的某个地方传递到另一个地方,通常会使用更多的内存,最终导致执行速度比使用连线来传递数据更慢。而全局变量,从一个全局变量读取数据时,LabVIEW将创建一份该全局变量的数据副本,保存于该全局变量中。  操作大型数组和字符串时,将占用相当多的时间和内存来操作全局变量。操作数组时使用全局变量尤为低效,原因在于即使只修改数组中的某个元素,LabVIEW仍对整个数组进行保存和修改。如一个应用程序中的不同位置同时读取某个全局变量,则将为该变量创建多个内存缓冲区,从而导致执行效率和性能降低。

两者的优点是可以方便的在同一个VI和不同的VI中传递数据。正因如此,可能会为了方便一直使用全局变量,使程序运行缓慢,内存消耗增大。


属性节点

属性节点,私以为,更关注与控件在前面板的特性,控件的大小、颜色、值及其他控件本身的信息。属性节点的性能强大,可以在程序中实现界面功能的操作,比如改变大小、位置、颜色、缩放、增加游标等诸多功能,其“属性节点的值”是其中一个小项。在程序中通过属性节点获取值,会从前面板的控件中索取值,其执行效率甚至低于局部变量,这中用法不建议使用。

引用

私以为,引用类似于给定了控件的地址,后续的操作全都是在做同一个地方进行,属性节点+局部变量,不同的循环和VI使用同一个引用(输入),即可改变值,完成值的传递。起运行性能较高。

你可能感兴趣的:(学习笔记)