微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 测试测量 > Labview > 本地变量与属性节点的差异和使用

本地变量与属性节点的差异和使用

时间:10-02 整理:3721RD 点击:

本地变量:建立本地变量实质就是对“控制器”/“指示器”中数据进行复制(copy),所以要占用内存,当为数组建立多个本地变量时,会占用大量的内存。操作行为是读数据(Read)或写数据(Write)

属性节点:建立属性节点实质上是对“控制器”/“指示器”中数据进行查询或置入,不会占用内存。因为在部件创建时已经为此参数分配好了内存,多少有些像VB中的属性设置。操作行为是查询(Query)数据或置入(Set)数据。

本地变量:由于本地变量是对内存操作,所以运行速度很快。

属性节点:相对于本地变量来讲,属性节点的效率是很低的,或者说更占用CPU的资源。


在程序框图中,本地变量或属性节点无须与control(控制器)/indicator(指示器)直接连线就可用来传递“控制器”/“指示器”中的数值。实际上,虽然它们从传递数值这个特性上有相同之处,但本质上还有许多不同的地方,只有充分了解它们之间的差异,才能有效、合理的在程序中使用它们。

    下面通过两个测试图来进一步说明二者之间的差异。在图1中,我们使用一个for循环对Numeric的本地变量写10000次数据,并测量运行的时间,探针[1]显示出程序运行时间是:4mS。



然后,我们将图1中的本地变量换成一个属性节点,见图2。

我们会看到10000次的操作运行时间是:2472mS。



由此可见,在数据频繁操作时属性节点的效率是很低的,或者说更占用CPU的资源。

本地变量:容易导致数据竞争,很多LabVIEW的书籍都介绍了这方面的例子。原因是本地变量破坏了数据流的工作方式。这也正是LabVIEW及许多书籍中强调的“慎用”本地变量的原因。

属性节点:可以通过“错误簇”来引导数据流,所以不会发生数据竞争现象。注意,当属性节点的错误簇没有使用(与其它vi相互连接),同样可能会导致数据竞争现象发生。


受教了

oooo哦几年级

学习了

lz伟大啊

受教了!

学习了

学习了

好像听懂了

可是不用局部变量,很多数据不知道怎么传递呀,

学习了

了解了解了

用什么还是要看实际情况的。

小程序内部用用局部变量还是可以的。

谢谢小编

恩 学习了

数据竞争还是不是很明白

太好了,受教

学习额!

这个问题,总是让我很懊恼~~

原来如此,请问本地节点、再第二次运行同一个程序是,节点变量如何清除,它是保留了前一次运行后的数据的

学习了。

多学一下

学习了,多谢

学习了

犀利了~~~~~~~~~~~~~~~~~~~

数据竞争是怎么回事啊

学习到了

小编讲的很仔细,点赞

数据竞争会出现什么情况呢?

谢谢    棒棒的  我也要加油

谢谢,好好学习一下。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top