一点关于提高LV执行效率的方法,,欢迎大家多讨论!
时间:12-13
整理:3721RD
点击:
1.对于循环,如果速度不是最重要的话,在循环中加入延时,将有效的缓解cpu的压力,不然将会明显降低其他正在运行程序的速率
如果想做较为精确的循环延时,用wait until Next ms Multiple function比用wait function更好
对于做用户输入接口的模块,可以使用event structure来代替while loop 从而避免使用后者带来的问题
2.尽可能不要在循环中使用build arrays function 来创建数组,因为这个函数将会访问Labview的内存管理器。有两种更有效的创建数组的方法,一种使用比较独特的auto indexing功能,另一个就是先初始化数组,预定义其大小,在循环中,使用 Replace Array element funcition来插入数值
3.请节约使用global and local variables. 滥用这两者变量,将明显增加内存开销。
在使用global variables时,可能出现读、写的竞争可能,需注意,可考虑用functional global variables 来代替global variables.
4.正确选择数组数据类型也很重要,例如100,000大小的扩展浮点型数组(extended-precision float-point array )需内存大约1Mb,若换成100,000大小的单精度浮点型数组single-precision float-point array),需内存大约400Kb,
5.频繁的刷新chart 和graph indicator 也将影响VI的执行效率,特别是大量数据的显示,优化方法是在前面板仅显示必要的显示控件,减小控件数据刷新的频率。
如果想做较为精确的循环延时,用wait until Next ms Multiple function比用wait function更好
对于做用户输入接口的模块,可以使用event structure来代替while loop 从而避免使用后者带来的问题
2.尽可能不要在循环中使用build arrays function 来创建数组,因为这个函数将会访问Labview的内存管理器。有两种更有效的创建数组的方法,一种使用比较独特的auto indexing功能,另一个就是先初始化数组,预定义其大小,在循环中,使用 Replace Array element funcition来插入数值
3.请节约使用global and local variables. 滥用这两者变量,将明显增加内存开销。
在使用global variables时,可能出现读、写的竞争可能,需注意,可考虑用functional global variables 来代替global variables.
4.正确选择数组数据类型也很重要,例如100,000大小的扩展浮点型数组(extended-precision float-point array )需内存大约1Mb,若换成100,000大小的单精度浮点型数组single-precision float-point array),需内存大约400Kb,
5.频繁的刷新chart 和graph indicator 也将影响VI的执行效率,特别是大量数据的显示,优化方法是在前面板仅显示必要的显示控件,减小控件数据刷新的频率。
使用refnum可以大大提高效率。
refnum用完以后一定要记得close ref
请问function global variabal 和global variabal 有什么区别。
不是很清楚。
老兄我怎么没有找到你说的录像轧。