版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、LabVIEW程序性能的若干编程技巧议程基于事件驱动的编程机制优化LabVIEW程序内存管理为什么要优化内存管理?基础篇提高篇自动代码分析议程基于事件驱动的编程机制优化LabVIEW程序内存管理为什么要优化内存管理?基础篇提高篇自动代码分析LabVIEW中基于事件驱动的编程LabVIEW事件示例按下鼠标键盘按键前面板的用户交互LabVIEW 事件结构事件结构?带有多个子框图的结构节点,就像条件结构事件结构是如何工作的?当面板上事件发生时才被唤醒自动执行相应事件框图内的事件代码当处理完成相应事件后便结束,并不一直循环等待为什么要使用事件结构?用更简单的事件处理替代原来的查询循环最小化CPU 的使
2、用不会遗漏用户界面交互事件可检测的交互事件编程生成您自己的事件使用事件结构模板状态机并行循环VI架构队列信息处理器生产者/消费者(数据)用户接口事件处理器生产者/消费者(事件)根据需要组合或扩展各种结构演示1:LabVIEW 事件结构编程议程基于事件驱动的编程机制优化LabVIEW程序内存管理为什么要优化内存管理?基础篇提高篇自动代码分析为什么要优化LabVIEW程序内存管理LabVIEW的自动管理内存特性方便用户开发,满足一般应用需求LabVIEW应用程序趋向大型化,复杂化项目规模大,需求复杂数据处理量大,性能要求高好的编程风格帮助LabVIEW优化内存管理可以显著提高程序运行效率需要了解L
3、abVIEW的内存分配机制监测VI内存占用和运行时间的工具帮助定位和分析程序中的瓶颈部分工具性能分析性能和内存显示VI内存分配情况的工具帮助分析程序中各个数据变量的内存拷贝情况目标:消除黑点工具性能分析显示缓存区分配演示2:监测VI内存占用和运行时间的工具优化LabVIEW程序内存管理基础篇适时选择动态调用子VI避免强制类型转换防止内存泄漏合理分配数组内存合理使用全局变量在程序中动态调用子VI减少程序占用内存以及载入时间打开VI通过关闭节点调用123典型的VI层次顶层VIVIs文件 I/O VIs校准VI保存报表 VI常用任务. 启动时加载.非常用任务. 调用时加载.配置 VI加载12演示3:
4、动态加载 VI数据类型转换强制点表明连接了两种不同的数据类型LabVIEW中类型强制转换需要数据备份涉及大数组的类型强制转换会占用大量内存的类型转换方式更好的解决方式是在随机数创建时进行转换 避免转换大块数据缓存(22.7 KB)(14.3 KB)防止内存泄漏通常发生在文件操作或动态调用VI中 注意关闭已打开的合理分配数组内存过多进行内存重新分配占用很大开销慎用可能导致内存重新分配的相关函数创建数组连接字符串演示4:LabVIEW 数组分配合理使用全局变量增加程序可读性减少程序框图中的连线 带来额外的内存开销全局变量需要数据备份避免对大数据变量使用全局变量 例如大数组,图像,信号等等做到程序可
5、读性和执行效率之间的平衡演示5:全局变量的内存分配优化LabVIEW程序内存管理高级篇利用移位寄存器shift register灵活使用LabVIEW自带的VI使用元素同址操作结构In Place Element Structure合理配置调用函数库节点Call Library NodeShift RegisterJeff Kodosky的最佳创意之一!通过使用移位寄存器,规定输出端数据重用输入端数据内存,节省内存开销举例:将输入数组的前半部分增大10倍灵活使用LabVIEW自带的VI基本线性代数子程序VI(Basic Linear Algebra Subroutines)合理归并基本线性代数
6、操作减少不必要的内存使程序更加简洁开销S演示6:使用BLAS VI进行矩阵向量乘法3AT x 2y元素同址操作结构更新数组或簇中的元素时,避免元素数据备份元素同址操作结构的优点方便实现多种情况的缓存重用,消除元素开销数组索引和替换簇的绑定和解除绑定 波形的绑定和解除绑定变体的缓存重用任意元素的缓存重用举例:数组索引和替换将数组第2个元素增大10倍方法一:方法二:元素数据备份举例:簇的绑定和解除绑定个人纳税信息的更新演示7:嵌套的元素同址操作结构更新数组中单数号元素合理配置调用函数库节点调用库函数节点中的Constant选项只有输入端,没有输出端,并确保在所调用的函数中没有修改所输入的数据此时选
7、中Constant选项,LabVIEW不会对输入数据进行备份演示8:配置调用库函数节点内存优化小结优化LabVIEW程序内存管理可以显著提高效率利用内存分配显示工具检查内存分配情况慎用可能导致内存分配的函数和全局变量灵活使用缓存重用技术移位寄存器 shift register元素同址操作结构目标:尽量消除代表内存分配的黑点!议程基于事件驱动的编程机制优化LabVIEW程序内存管理为什么要优化内存管理?基础篇提高篇自动代码分析LabVIEW VI 分析器工具LabVIEW工具包附件*通过60+ 的可配置测试自动分析代码性能风格交互式的检测错误生成定制报表*包括在NI开发者套件板内VI 分析器 与性能相关的测试循环内数组和字符串强制类型转换点使能的调试While循环中的等待 VI的大小数组默认值结构体里面隐藏的对象全局变量和局部变量未使用代码子程序框图内已连线的接线端顺序结构的使用演
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- PE焊工职业考核考试题(含详细答案)
- 2026年焦炉试题及答案
- 化学实验室安全操作规程
- 原醛症螺内酯血钾监测频次标准化规范共识
- 2025-2026学年陕西省咸阳市初中数学七年级期末上册高分重点黑金模拟题(附答案)
- Oracle数据库面试题及答案(真实面试版)
- 房颤消融术后远程心电监测应用共识
- 景区攀岩运维员安全操作规程
- 2026年内蒙古自治区检察系统聘用制书记员招聘笔试试题及答案
- 老年抑郁筛查路径中国专家共识(2026版)
- 收费站冬防安全知识培训课件
- 2026年中国农业银行秋季校园招聘即将开始考试笔试试题(含答案)
- 重庆綦江县2025年上半年事业单位公开遴选试题含答案分析
- 出生医学证明警示教育
- 安全注射标准WST856-2025学习解读课件
- TD/T 1001-2012地籍调查规程
- JG/T 298-2010建筑室内用腻子
- 秋冬季节老年人疾病预防指南
- 《森林生态恢复》课件
- 人教版数学六年级上册《节约用水》课件
- 护理生活自理能力评分量表
评论
0/150
提交评论