LabVIEW性能和内存管理 3
本文介绍LabVIEW性能和内存管理的几个建议3。
显示缓冲区分配。
“显示缓冲区分配”工具位于工具>配置文件>显示缓冲区分配
In Place优化例程。对波形数组的每个元素进行操作
下面是如何使用ShowBuffer allocation工具提高性能的示例。从层次结构的高级别开始,可以使用显示缓冲区分配工具来查看这些波形被复制了三次。为了优化这一点,我们需要深入到每一个SubVIs并修复它们,以便它们能够在适当的位置运行。
Make the firstSubVI “in place”在这里,我们可以通过使用in place结构使子vi正常工作。如果LabVIEW版本没有到位元素结构,那么可以通过将输入波形连接到右侧束波形节点的顶部终端(所谓的“魔术模式”)来获得相同的效果。这给了LabVIEW的到位算法一个提示,你想要那两个波形in place。
SubVI 2 is made“in place”
Again we can makethe subVI work in place by using the in place element structure.
SubVI 3 is made“in place”
One more time wecan make the subVI work in place by using the in place element structure.
最终结果:点被隐藏了
在调用subVIs的情况下,除非需要,否则不加载前面板。本课稍后将讨论subVI前面板需要的实例。
一旦访问了每个子vis并修复了副本,那么就可以保存它们(包括顶级VI),并再次使用显示缓冲区分配工具来验证圆点是否消失了。记住,必须重新编译Vis以更新缓冲区分配显示。可以通过运行VI、保存它或按住Control键并单击Run箭头来实现这一点。
In Place ElementStructure Nodes
In Place Element结构使用多个边界节点从各种数据结构中提取数据。这些节点用于从数据结构(包括阵列、集群、波形和变体)中提取单个数据点。此外,In Place In/out边界节点允许为In Place操作传入单个值。
如果在In PlaceElement结构中编写的代码不能在适当的位置执行,LabVIEW将生成一个内存副本。
数组拆分/替换子数组和数据值参考读/写节点是LabVIEW 2009中新增的。数据值引用是唯一的,我们将在本节后面讨论该功能。
Panel Data orOperate Buffers
Controls andindicators have their own copy of the data
Memory is notneeded if the front panel is not in memory
Default dataincreases memory usage
前面板控件和指示器有自己的数据副本,因此前面板编辑不会干扰计算。在所示的示例中,Numeric +1意味着与Numeric一致。如果前面板和框图共享此内存空间,则执行此代码后,前面板的值将与Numeric +1相同。
一些控件,如图表和表格,能够存储大量默认数据,这可能会增加内存使用量。VI Analyzer包含一个测试,用于检测应用程序中是否出现这种情况。
需要说明的是,上述的例程和文档,都是可以下载的,双击即可打开,其中压缩文件是可以采用粘贴复制的方式,拷贝到硬盘上。这不是图片,各位小伙伴看到后尝试一下,这个问题就不用加微信咨询了。有关LabVIEW编程、LabVIEW开发等相关项目,可联系们。