- 1、本文档共10页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
提升LabVIEW程序性能-优化内存管理
内容提要为什么要优化LabVIEW程序内存管理01LabVIEW中监测VI内存占用和运行时间的工具02优化LabVIEW程序内存管理基础篇高级篇03
为什么要优化LabVIEW程序内存管理方便用户开发,满足一般应用需求LabVIEW的自动管理内存特性项目规模大,需求复杂数据处理量大,性能要求高LabVIEW应用程序趋向大型化,复杂化可以显著提高程序运行效率需要了解LabVIEW的内存分配机制好的编程风格帮助LabVIEW优化内存管理贰壹叁
工具?性能分析?性能和内存帮助定位和分析程序中的瓶颈部分
工具?性能分析?显示缓存区分配帮助分析程序中各个数据变量的内存拷贝情况目标:消除黑点
演示:监测VI内存占用和运行时间的工具
优化LabVIEW程序内存管理-基础篇避免强制类型转换01合理分配数组内存03防止内存泄漏02合理使用全局变量04
强制点表明连接了两种不同的数据类型LabVIEW中类型强制转换需要数据备份涉及大数组的类型强制转换会占用大量内存
更好的解决方式是在随机数创建时进行转换避免转换大块数据缓存(14.3KB)(22.7KB)
通常发生在文件操作或动态调用VI中注意关闭已打开的引用
过多进行内存重新分配占用很大开销慎用可能导致内存重新分配的相关函数创建数组连接字符串
4合理使用全局变量减少程序框图中的连线增加程序可读性1带来额外的内存开销全局变量需要数据备份避免对大数据变量使用全局变量例如大数组,图像,信号等等做到程序可读性和执行效率之间的平衡2
演示:全局变量的内存分配
优化LabVIEW程序内存管理-高级篇合理配置调用函数库节点CallLibraryNode3124利用移位寄存器shiftregister灵活使用LabVIEW自带的VI使用元素同址操作结构InPlaceElementStructure
通过使用移位寄存器,规定输出端数据重用输入端数据内存,节省内存开销举例:将输入数组的前半部分增大10倍
演示:移位寄存器的使用查找并替换数组中的值
基本线性代数子程序VI(BasicLinearAlgebraSubroutines)合理归并基本线性代数操作减少不必要的内存复制开销使程序更加简洁数学?线性代数?BLASNEW!
演示:使用BLASVI进行矩阵-向量乘法
更新数组或簇中的元素时,避免元素数据备份应用控制?内存控制NEW!
方便实现多种情况的缓存重用,消除元素复制开销数组索引和替换簇的绑定和解除绑定波形的绑定和解除绑定变体的缓存重用任意元素的缓存重用
将数组第2个元素增大10倍方法一:方法二:元素数据备份
个人纳税信息的更新
演示:嵌套的元素同址操作结构更新数组中单数号元素
调用库函数节点中的Constant选项只有输入端,没有输出端,并确保在所调用的函数中没有修改所输入的数据此时选中Constant选项,LabVIEW不会对输入数据进行备份NEW!
演示:配置调用库函数节点
优化LabVIEW程序内存管理可以显著提高效率利用内存分配显示工具检查内存分配情况慎用可能导致内存分配的函数和全局变量灵活使用缓存重用技术移位寄存器shiftregister元素同址操作结构目标:尽量消除代表内存分配的黑点!!
文档评论(0)