LabVIEW 内存优化
LabVIEW编程:内存优化
LabVIEW程序和内存
议程
• LabVIEW程序内存分配机制
• LabVIEW内存管理工具
• LabVIEW内存优化方法案例分析
• 小结
LabVIEW程序内存分配机制
• 数据流编程模型(DataFlow)
• 自动分配内存
• 提高用户开放效率
可重用输入内存节点
可重用输入内存节点
可重用输入内存节点
可重用输入内存节点
需要分配内存节点
APUTI
高亮
需要分配内存节点...
LabVIEW编程:内存优化
LabVIEW程序和内存
议程
• LabVIEW程序内存分配机制
• LabVIEW内存管理工具
• LabVIEW内存优化方法案例分析
• 小结
LabVIEW程序内存分配机制
• 数据流编程模型(DataFlow)
• 自动分配内存
• 提高用户开放效率
可重用输入内存节点
可重用输入内存节点
可重用输入内存节点
可重用输入内存节点
需要分配内存节点
APUTI
高亮
需要分配内存节点
需要分配内存节点
需要分配内存节点
移位寄存器
• 左右移位寄存器共用一份内存
APUTI
高亮
元素同址操作结构
• 方便实现多种情况的缓存重用,消除元素复
制开销
元素同址操作结构
• 方便实现多种情况的缓存重用,消除元素复
制开销
APUTI
高亮
元素同址操作结构
• 方便实现多种情况的缓存重用,消除元素复
制开销
全局和局部变量(慎用)
• 重用内存
• 内部会有额外的内存拷贝
• 额外运行开销
• 竞态(Race condition)
数据值引用
• 新建数据值引用允许你创建数据的引用到连
线上
• 无论引用的连线是有多个分支,还是被修改,
它都是在操作原始数据
队列
• 通过队列传递数据
• 队列中的元素以引用的形式被传递
调用函数库节点
• 调用库函数节点中的Constant选项
– 只有输入端,没有输出端,并确保在所调用的
函数中没有修改所输入的数据
– 此时选中Constant选项,LabVIEW不会对输入数
据进行备份
数组
数组
数组
Array
Sub Array
隐藏的内存分配
• 带有分支的连线
隐藏的内存分配
• 强制类型转换
相关工具
• 资源管理器
• VI属性
• 性能和内存分析
• 显示缓冲区分配
资源管理器
VI属性——内存使用
文件»VI属性»内存使用
性能和内存分析
• 帮助定位和分析程序中的瓶颈部分
工具»性能分析»性能和内存
APUTI
高亮
显示缓冲区分配
• 帮助分析程序中各个数据变量的内存拷贝情
况
工具»性能分析»显示缓冲区分配
测量一段程序的执行时间
• 使用High resolution relative seconds.vi
– Vi.lib/utility
• 优于Tick Primitive
微妙级别 毫秒级别
用户程序
APUTI
高亮
APUTI
高亮
预先分配数组内存
使用总是复制节点
使用数据值引用
64-bit LabVIEW
• 32bit LabVIEW最大4G内存寻址
• 大于4G数据考虑 64-bit LabVIEW和64-bit OS
Architectural Component
(Windows)
64-bit LabVIEW 32-bit LabVIEW
Virtual Memory 16 terabyte 4 GB
Paging file size 256 terabyte 16 terabyte
Paged pool 128 GB 470 MB
Non-paged pool 128 GB 256 MB
System Cache 1 terabyte 1 GB
System PTEs 128 GB 660 MB
APUTI
高亮
APUTI
高亮
小结
• LabVIEW内存分配机制
• LabVIEW内存查看工具
• 灵活使用LabVIEW节点重用内存
– 合理分配数组
– 移位寄存器
– 元素同址操作结构
– 使用数据值引用和队列
更多技术资源下载
GSDZone.net / community
敬请进入下一环节
本文档为【LabVIEW 内存优化】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。