找到labview程序运行速度的瓶颈 - 百度文库
LabVIEW执行速度 - 北京瀚文网星科技有限公司
性能和内存信息窗口
必需:基础版开发系统
选择工具»性能分析»性能和内存,可显示该窗口。
该窗口用于采集和显示VI的执行时间和内存使用信息。如在不属于项目的VI中打开性能和内存信息窗口,该窗口将记录所有处于打开状态且不属于项目的VI的信息。 如从属于项目的VI中打开记录性能和内存信息窗口,该窗口将记录所有终端上与该项目相关的VI的信息。 每次只能记录一个和项目相关的VI的信息。
该窗口不支持远程调试。 如果在远程调试时打开性能和内存信息窗口,则窗口仅在本地计算机上记录VI。
| 注:通过Desktop Execution Trace工具包可监视代码分析、内存溢出和LabVIEW编程的其他方面。 |
| 注:通过LabVIEW VI Analyzer工具包可通过交互或编程方式检查VI的性能、效率和LabVIEW编程的其他方面。 |
该窗口包括以下部分:
- 时间统计—显示关于VI运行时间的数据:
- 运行数量—VI完成运行的数量。 对于全局VI,该值为VI中所有控件访问次数的总和。
- 平均—VI每次运行所需的平均时间。 该值为VI运行的时间除以运行次数。
- 最短—VI运行一次所需的最短时间。
- 最长—VI运行一次所需的最大时间。
- 时间详细信息—显示关于VI运行时间的详情:
- 程序框图—仅执行VI程序框图生成的代码所需的时间。
- 显示—使VI前面板控件中的值更新为程序框图中新生成的值所需的时间。 如未右键单击控件,在快捷菜单选择高级»同步显示选项,显示的数据可能不精确。 可通过同步显示属性设置是否延迟控件的更新。
- 绘制—绘制前面板和程序框图所需的时间减去显示时间。 绘制时间包括前面板窗口刚被打开或者被其它窗口遮蔽后重新显示出来时绘制前面板所需的时间。 绘制时间还包括绘制透明或重叠的控件所需的时间。 接收来自程序框图的新数据时,透明或重叠的控件必须使其所在的屏幕区域无效,从而该区域内的所有控件可按正确顺序重新绘制。 其它控件接收到来自程序框图的新数据时,可立即在前面板上绘制数据。 屏幕无效和重新绘制数据时会增加系统开销,大多数(不是全部)开销反映在绘制计时中。
- 跟踪—跟踪用户操作所需的时间(包括在用户与前面板交互时跟踪鼠标所需的时间)。 跟踪操作在有些情况下尤其重要(例如,缩放图片,在快捷菜单中选择菜单项或在控件中选择和键入文本)。
- 局部—读写局部变量所需的时间。 该时间在某些情况下十分重要,尤其是涉及到大规模复杂数据时。
通过时间详细信息复选框下方的下拉式菜单,可选择时间的显示格式(毫秒、微秒或秒)。 - 时间单位—LabVIEW计算记录数据中结果所需时间的单位。
- 记录内存使用—在记录过程中收集内存的统计数据。 但是,记录内存信息会显著降低运行速度。 只有停止记录时,才可勾选该复选框。
- 内存使用—显示VI使用的字节数和独立内存块的统计。 字节数表示VI的全部内存使用。 内存块的数量表示独立连续的内存区间的数量,该内存在VI停止运行后仍然被分配给VI。 字节统计比块统计更适合于了解VI的内存使用和评估使用变化。
本部分显示下列关于内存使用的信息:
- 平均字节-VI运行时数据空间使用的平均字节量。
- 最小字节-VI运行时数据空间使用的最小字节量。
- 最大字节-VI运行时数据空间使用的最大字节量。
- 平均数据块-VI运行时数据空间使用的数据块的平均数量。
- 最小块-VI运行时数据空间使用数据块的最小数量。
- 最大块-VI运行时数据空间使用数据块的最大数量。
通过大小单位下拉菜单可选择显示格式。
要减少VI的内存使用,请遵循LabVIEW高效使用内存的规则。 也可以评估是否重新设计VI,以使用更少的数据复本。 显示缓冲区分配窗口可显示LabVIEW创建数据副本的位置。 - 大小单位—LabVIEW用于计算记录数据中结果大小的单位。 KB表示1000字节。 MB表示1000000字节。
- 选择应用程序实例—打开选择应用程序实例对话框。 该对话框用于选择性能和内存信息窗口中显示的应用程序实例的数据。
- 应用程序实例—显示记录性能和内存信息窗口访问的各个应用程序实例,以及LabVIEW用于代表实例的颜色。
- 记录数据—显示当前记录中数据的快照。 单击列表中的行,选中某个VI。 按下键再单击行,可取消该行的高亮显示。 双击VI行,可获得选中VI所调用的子VI的信息。 单击列首或左上角的单元格,可按列中数据或VI名称排列各行。 表格中前三列始终可见的基本信息由下列项构成:
- VI时间-实际执行VI代码和显示其数据的全部时间,也包括用户与任何前面板控件交互的时间。 对于全局VI,该时间是复制数据至控件和复制控件中的数据所需的总时间。 双击全局VI的名称,可查看每个控件的计时信息。
- 子VI时间-VI的所有子VI所需的全部时间。 该时间是VI所有调用程序和所有下级调用程序所需的VI时间。
- 总共时间-VI时间和子VI时间的总和。
- 项目库-如需记录的VI属于某个项目库,则表格显示框中包含该库。
- 开始—开始记录。 单击该按钮后,LabVIEW可分配记录结构,执行系统开始收集计时信息。 建议在无应用程序运行时开始记录,确保记录完整的VI运行过程,而非部分运行过程。
- 停止—停止记录。 单击该按钮后,执行系统停止收集计时信息,LabVIEW保留最后的快照。
- 快照—收集当前执行系统内存中所有VI的状态记录,用户可通过列表查看数据。
- 保存—通过用制表符分隔的文本表格文件显示当前的数据,并在磁盘中保存文本文件。 通过电子表格程序或VI可查看该数据。
- 关闭—关闭记录性能和内存信息窗口。
提高LabVIEW程序运行速度的方法:
-
代码优化: 仔细检查你的LabVIEW代码,确保它是高效的。避免不必要的循环和条件语句,尽可能使用LabVIEW内置的优化功能。使用LabVIEW Profiler工具来识别性能瓶颈。
-
数据流优化: LabVIEW是一种数据流编程语言,合理安排数据流可以提高程序的运行速度。确保数据流的顺畅,减少数据拷贝和冗余计算。
-
并行编程: 利用LabVIEW的并行编程功能,将一些独立的任务并行执行,以提高整体性能。使用并行循环、并行功能、或Actor框架等。
-
使用LabVIEW内置函数: LabVIEW提供了许多内置函数和工具箱,这些函数通常经过优化,可以提高程序性能。避免过度依赖自定义的解决方案,优先考虑使用LabVIEW提供的标准工具。
-
数据处理优化: 如果你的LabVIEW程序涉及大量数据处理,考虑使用LabVIEW内置的高性能函数,例如Matrix和Array操作,避免使用低效的循环。
-
缓存和内存管理: 合理利用LabVIEW的缓存机制和内存管理功能。确保及时释放不再使用的资源,避免内存泄漏。
-
硬件优化: 如果你的LabVIEW程序与硬件交互,确保硬件的性能足够满足程序需求。升级硬件或者使用更高性能的硬件可以改善程序的运行速度。
-
减少不必要的显示和输出: 如果你的LabVIEW程序包含图形界面或者输出大量的结果,考虑减少显示的频率或者限制输出的内容,以提高程序运行效率。
-
LabVIEW版本更新: 确保你使用的LabVIEW版本是最新的,因为新版本通常包含性能改进和 bug 修复。
-
使用 LabVIEW Profiler: 使用LabVIEW Profiler来诊断程序性能瓶颈,找到需要优化的地方。