《提升labview程序性能-优化内存管理.ppt》由会员分享,可在线阅读,更多相关《提升labview程序性能-优化内存管理.ppt(27页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、提升提升LabVIEW程序性能优化内存管理程序性能优化内存管理内容提要内容提要为什么要优化LabVIEW程序内存管理LabVIEW中监测VI内存占用和运行时间的工具优化LabVIEW程序内存管理基础篇高级篇为什么要优化为什么要优化LabVIEW程序内存管理程序内存管理LabVIEW的自动管理内存特性方便用户开发,满足一般应用需求LabVIEW应用程序趋向大型化,复杂化项目规模大,需求复杂数据处理量大,性能要求高好的编程风格帮助LabVIEW优化内存管理可以显著提高程序运行效率需要了解LabVIEW的内存分配机制监测监测VI内存占用和运行时间的工具内存占用和运行时间的工具帮助定位和分析程序中的瓶
2、颈部分工具工具性能分析性能分析性能和内存性能和内存显示显示VI内存分配情况的工具内存分配情况的工具帮助分析程序中各个数据变量的内存拷贝情况目标:消除黑点工具工具性能分析性能分析显示缓存区分配显示缓存区分配演示:监测演示:监测VI内存占用和运行时间的工具内存占用和运行时间的工具优化优化 LabVIEW程序内存管理基础篇程序内存管理基础篇避免强制类型转换防止内存泄漏合理分配数组内存合理使用全局变量1 数据类型转换数据类型转换强制点表明连接了两种不同的数据类型LabVIEW中类型强制转换需要数据备份涉及大数组的类型强制转换会占用大量内存推荐的类型转换方式推荐的类型转换方式更好的解决方式是在随机数创建
3、时进行转换避免转换大块数据缓存(14.3 KB)(22.7 KB)2 防止内存泄漏防止内存泄漏通常发生在文件操作或动态调用VI中注意关闭已打开的引用3 合理分配数组内存合理分配数组内存过多进行内存重新分配占用很大开销慎用可能导致内存重新分配的相关函数创建数组连接字符串演示:演示:LabVIEW 数组分配数组分配4 合理使用全局变量合理使用全局变量增加程序可读性减少程序框图中的连线带来额外的内存开销全局变量需要数据备份避免对大数据变量使用全局变量例如大数组,图像,信号等等做到程序可读性和执行效率之间的平衡演示:全局变量的内存分配演示:全局变量的内存分配优化优化 LabVIEW程序内存管理高级篇程
4、序内存管理高级篇利用移位寄存器shift register灵活使用LabVIEW自带的VI使用元素同址操作结构In Place Element Structure合理配置调用函数库节点Call Library Node1 Shift Register Jeff Kodosky的最佳创意之一!的最佳创意之一!通过使用移位寄存器,规定输出端数据重用输入端数据内存,节省内存开销举例:将输入数组的前半部分增大10倍演示:移位寄存器的使用演示:移位寄存器的使用查找并替换数组中的值查找并替换数组中的值2 灵活使用灵活使用LabVIEW自带的自带的VI基本线性代数子程序VI (Basic Linear Al
5、gebra Subroutines)合理归并基本线性代数操作减少不必要的内存复制开销使程序更加简洁数学数学线性代数线性代数BLASNEW!演示:使用演示:使用BLAS VI进行矩阵向量乘法进行矩阵向量乘法3 元素同址操作结构元素同址操作结构更新数组或簇中的元素时,避免元素数据备份应用控制应用控制内存控制内存控制NEW!元素同址操作结构的优点元素同址操作结构的优点方便实现多种情况的缓存重用,消除元素复制开销数组索引和替换簇的绑定和解除绑定波形的绑定和解除绑定变体的缓存重用任意元素的缓存重用举例:数组索引和替换举例:数组索引和替换将数组第2个元素增大10倍方法一:方法一:方法二:方法二:元素数据备
6、份元素数据备份举例:簇的绑定和解除绑定举例:簇的绑定和解除绑定个人纳税信息的更新演示:嵌套的元素同址操作结构演示:嵌套的元素同址操作结构更新数组中单数号元素更新数组中单数号元素4 合理配置调用函数库节点合理配置调用函数库节点调用库函数节点中的Constant选项只有输入端,没有输出端,并确保在所调用的函数中没有修改所输入的数据此时选中Constant选项,LabVIEW不会对输入数据进行备份NEW!演示:配置调用库函数节点演示:配置调用库函数节点总结总结优化LabVIEW程序内存管理可以显著提高效率利用内存分配显示工具检查内存分配情况慎用可能导致内存分配的函数和全局变量灵活使用缓存重用技术移位寄存器 shift register元素同址操作结构 目标:尽量消除代表内存分配的黑点目标:尽量消除代表内存分配的黑点!