|
如图1,有些功能VI其调用的子VI很多,那么实际打开这个功能VI时或者动态加载这个功能VI时,我们就会看到LabVIEW要确认所调用到的子VI的路径并进行加载,这个加载的过程是比较耗时间的。然而,当我们打开这个功能VI或者动态加载这个功能VI时,为了避免每次都要将加载子VI加载一遍,就必须将其调用的所有子VI进行编译,并将编译信息进行保存,如图2所示。只有将编译信息保存了,LabVIEW才可以知道各个子VI的路径信息,那么下次打开这个功能VI时或者动态加载这个功能VI时,其调用的子VI就不需要重新加载了。因此,要优化VI动态加载到子面板的速度,我们就必须注意对功能VI中子VI的编译信息进行保存。
如图4所示,在该功能VI没有被保存编译信息的情况下,将其加载到子面板的时间约为1.6s。
如图5所示,当加载10个这种没有被保存编译信息的VI时,可以看到在程序框图中虽然是并行加载的代码,但是时间却是12.3s,相当于10个VI加载时间的和。之所以会出现这样的情况,就是因为每一个功能VI的动态加载都需要将其调用的子VI重新加载一遍,所以在此就根本没有体现出LV编程天然并行执行的这样一个思想。
第三种方法就是将调用的子VI手动保存,具体操作就是将子VI的前面板打开,然后保存即可,这个过程就是子VI编译信息的保存。
|