1
提升LabVIEW程序性能-优化内存管理 PPT
2010-01-15 10:02:18 admin 浏览:8258次 【大 中 小】
 
•提升LabVIEW程序性能-优化内存管理
•内容提要
•为什么要优化LabVIEW程序内存管理
•LabVIEW的自动管理内存特性
–方便用户开发,满足一般应用需求
•LabVIEW应用程序趋向大型化,复杂化
–项目规模大,需求复杂
–数据处理量大,性能要求高
•好的编程风格帮助LabVIEW优化内存管理
–可以显著提高程序运行效率
–需要了解LabVIEW的内存分配机制
•监测VI内存占用和运行时间的工具
•帮助定位和分析程序中的瓶颈部分
•显示VI内存分配情况的工具
•帮助分析程序中各个数据变量的内存拷贝情况
–目标:消除黑点

演示:监测VI内存占用和运行时间的工具

•优化 LabVIEW程序内存管理-基础篇
•避免强制类型转换
•防止内存泄漏
•合理分配数组内存
•合理使用全局变量
•1 数据类型转换
•强制点表明连接了两种不同的数据类型
–LabVIEW中类型强制转换需要数据备份
–涉及大数组的类型强制转换会占用大量内存
•推荐的类型转换方式
•更好的解决方式是在随机数创建时进行转换
–避免转换大块数据缓存
•2 防止内存泄漏
•通常发生在文件操作或动态调用VI中
–注意关闭已打开的引用
•3 合理分配数组内存
•过多进行内存重新分配占用很大开销
•慎用可能导致内存重新分配的相关函数
–创建数组
–连接字符串

演示:LabVIEW 数组分配

•4 合理使用全局变量
ü增加程序可读性
–减少程序框图中的连线
û带来额外的内存开销
–全局变量需要数据备份
•避免对大数据变量使用全局变量
–例如大数组,图像,信号等等
•做到程序可读性和执行效率之间的平衡

演示:全局变量的内存分配

•优化 LabVIEW程序内存管理-高级篇
•利用移位寄存器shift register
•灵活使用LabVIEW自带的VI
•使用元素同址操作结构In Place Element Structure
•合理配置调用函数库节点Call Library Node
•1 Shift Register-
                Jeff Kodosky
的最佳创意之一!
•通过使用移位寄存器,规定输出端数据重用输入端数据内存,节省内存开销
•举例:将输入数组的前半部分增大10倍

演示:移位寄存器的使用

查找并替换数组中的值

•2 灵活使用LabVIEW自带的VI
•基本线性代数子程序VI

   (Basic Linear Algebra Subroutines)

–合理归并基本线性代数操作
–减少不必要的内存复制开销
–使程序更加简洁

演示:使用BLAS VI进行矩阵-向量乘法

•3 元素同址操作结构
•更新数组或簇中的元素时,避免元素数据备份
•元素同址操作结构的优点
•方便实现多种情况的缓存重用,消除元素复制开销
–数组索引和替换
–簇的绑定和解除绑定
–波形的绑定和解除绑定
–变体的缓存重用
–任意元素的缓存重用
•举例:数组索引和替换
•将数组第2个元素增大10倍
•举例:簇的绑定和解除绑定
•个人纳税信息的更新

演示:嵌套的元素同址操作结构

更新数组中单数号元素

•4 合理配置调用函数库节点
•调用库函数节点中的Constant选项
–只有输入端,没有输出端,并确保在所调用的函数中没有修改所输入的数据
–此时选中Constant选项,LabVIEW不会对输入数据进行备份

演示:配置调用库函数节点

•总结
•优化LabVIEW程序内存管理可以显著提高效率
•利用内存分配显示工具检查内存分配情况
•慎用可能导致内存分配的函数和全局变量
•灵活使用缓存重用技术
–移位寄存器 shift register
–元素同址操作结构

目标:尽量消除代表内存分配的黑点!!

1 条评论
查看更多评论
浏览:12237次 评论:3条
2019-03-02 19:27:32
浏览:9449次 评论:1条
2018-07-13 09:36:33
  • LabVIEW 2018的新增功能及改动:*针对不同数据类型自定义自适应VI*使用用于LabVIEW的命令行接口运行操作*从LabVIEW调用Python代码*应用程序生成器的改进*环境..

    浏览:7377次 评论:0条
    2018-05-21 22:42:43
浏览:5232次 评论:0条
2018-01-26 22:48:09
浏览:34302次 评论:1条
2017-09-27 15:39:39
作者专栏
  • maya100

    注册时间:2026-08-22 15:27:34

  • liaohuabei

    注册时间:2026-07-22 22:36:39

  • 哆啦

    注册时间:2026-05-21 11:36:55

  • chzaidj

    注册时间:2026-04-19 12:14:55

  • 5330asd

    注册时间:2026-04-13 19:53:48

Copyright@http://nilab.com.cn all rights reserved 备案号:京ICP备12043750号-1
Powered by qibosoft V9.0 Code © 2003-2017 qibosoft
LABVIEW之家 --- QQ:181237912; email:Labviewzj@qq.com