发表于
2006-10-13 21:04:09
本地变量(local variable)与属性节点(property node)的不同
我们知道在程序框图中,本地变量或属性节点无须与control(控制器)/indicator(指示器)直接连线就可用来传递“控制器”/“指示器”中的数值。
当然,属性节点还有非常多的使用方法,所以对本地变量与属性节点之间不同的讨论也仅限于传递数值这个特性上。
实际上,虽然它们从传递数值这个特性上有相同之处,但本质上还有许多不同的地方,只有充分了解它们之间的差异,才能有效、合理的在程序中使用它们。
1、 内存
本地变量:建立本地变量实质就是对“控制器”/“指示器”中数据进行复制(copy),所以要占用内存,当为数组建立多个本地变量时,会占用大量的内存。
操作行为是读数据(Read)或写数据(Write)
属性节点:建立属性节点实质上是对“控制器”/“指示器”中数据进行查询或置入,不会占用内存。因为在部件创建时已经为此参数分配好了内存,多少有些像VB中的属性设置。
操作行为是查询(Query)数据或置入(Set)数据。
2、 执行速度
本地变量:由于本地变量是对内存操作,所以运行速度很快。
属性节点:相对于本地变量来讲,属性节点的效率是很低的,或者说更占用CPU的资源。
下面通过两个测试图来进一步说明二者之间的差异。在图1中,我们使用一个for循环对Numeric的本地变量写10000次数据,并测量运行的时间,探针[1]显示出程序运行时间是:4mS。

图1 本地变量的10000次运行时间
然后,我们