- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
提升LabVIEW程序性能的若干编程技巧.ppt
提升LabVIEW程序性能的若干编程技巧 概述 基于事件驱动的编程机制 LabVIEW程序内存管理 动态调用VI 类型转换 内存重新分配 用户接口性能 自动静态代码分析 LabVIEW中基于事件驱动的编程 LabVIEW事件示例 按下鼠标 键盘按键 前面板的用户交互 LabVIEW 事件结构 什么是事件结构? 带有多个子框图的结构节点, 就像条件结构 事件结构是如何工作的? 当面板上事件发生时才被唤醒 自动执行相应事件框图内的事件代码 当处理完成相应事件后便结束,并不一直循环等待 为什么要使用事件结构 ? 用更简单的事件处理替代原来的查询循环 最小化 CPU 的使用 不会遗漏用户界面交互事件 可检测更多的交互事件 编程生成您自己的事件 使用事件结构模板 状态机 并行循环VI架构 队列信息处理器 生产者/消费者 (数据) 用户接口事件处理器 生产者/消费者 (事件) 根据需要组合或扩展各种结构 演示1: LabVIEW 事件结构编程 内存管理措施:提高程序性能的关键 将VI分为多个子VI 监测内存分配状况以定位问题 适时选择动态调用子VI 减少数据备份和内存重新分配 尽可能减少前面板刷新 监测VI性能和内存 监测VI执行时间和内存占用 在程序中动态加载VI ——减少程序占用内存以及载入时间 打开VI引用 通过引用节点调用 关闭引用 典型的VI层次 配置 VI加载– LabVIEW 8.20 调用库函数的改进 在LabVIEW 8.20中动态加载和卸载DLL 演示2: 动态加载 VI 类型转换 强制点表明连接了两种不同的数据类型 LabVIEW中类型强制需要数据备份 涉及大数组的类型强制会占用大量内存 推荐的类型转换方式 更好的解决方式是在随机数创建时进行转换 避免转换大块数据缓存 自定义类型强制点 创建数组和字符串 过多进行内存重新分配占用很大开销 需要限制可能导致内存重新分配的相关函数 创建数组 连接字符串 18.7秒内创建一个数组 非常慢 因为每个循环都涉及内存重新分配 0.42秒内创建一个数组 快很多 因为仅有单个内存分配 0.40秒内创建一个数组 最快也是最简洁的方法 查看缓冲区分配 显示缓冲区分配 显示程序中内存分配的位置 演示3:LabVIEW 内存分配 提高用户接口性能 输入和显示控件属性以及调用节点都会降低应用程序速度 设计subVI 的前面板在执行中保持关闭来减少显示开销 强制线程转换为UI线程 可以在完成时强制UI更新 线程转化回初始线程 首选的用户界面更新方法 使用 延迟前面板刷新 在多刷新时禁止前面板 演示4:线程交换 LabVIEW VI 分析器工具 LabVIEW工具包附件* 通过60+ 的可配置测试自动分析代码 性能 分格 交互式的检测错误 生成定制报表 VI 分析器—— 与性能相关的测试 循环内数组和字符串 强制点 使能的调试 While循环中的等待 VI的大小 数组默认值 结构体里面隐藏的对象 全局变量和局部变量 未使用代码 子程序框图内已连线的接线端 顺序结构的使用 演示5:VI 分析器工具 总结 使用事件驱动编程将处理器占用降到最低 动态加载VI改进内存占用和初始加载时间 减少内存重新分配和线程交换以提高运行速度 通过自动代码检测定位性能问题 In LabVIEW 8 and 8.20, you can dynamically load a VI by simply placing it on the block diagram, right-clicking on it and selecting Call Setup from the right-click menu. From the resulting dialog window, you can change how the VI is loaded (see image). As explained previously, LabVIEW loads VIs when the caller is loaded. However, this can be changed to ‘Reload for each call’ or ‘Load and retain on first call’ (also known as “lazy loading”). Using the Call Setup feature, you can easily reduce your LabVIEW memory footprint at any given point in the execution of your application by c
您可能关注的文档
最近下载
- 文献产后出血护理论文与产后出血的护理论文:产后失血性休克继发急性肺.doc VIP
- 2002年天津市中考化学试卷【含答案】.pdf VIP
- 火灾自动报警系统部件现场设置情况、控制类设备联动编程、消防联动控制器手动控制单元编码设置记录.docx VIP
- 致动C+无线使用说明书.pdf VIP
- 西安宇立航空科技有限公司行业竞争力评级分析报告(2023版).pdf
- 2.3 黑龙江省基本概况与主要文旅资源《地方导游基础知识》(第四版)PPT.pptx VIP
- 心理健康状况自评量表(SCL-90).doc VIP
- 质量保证记录控制程序.doc VIP
- DPD原理及实现全解.ppt
- 不符合情况纠正措施.docx VIP
原创力文档


文档评论(0)