权衡编辑器响应时间和VI执行速度
- 更新时间2025-08-27
- 阅读时长3分钟
为了让您能够在没有明显延迟的情况下编辑较大的VI,当VI的复杂度超过一定阈值时,LabVIEW会自动限用编译器优化。限用编译器优化的结果是,VI在编译后运行速度无法达到最快。用户可在LabVIEW的响应速度和VI执行速度之间做优先级选择,调整LabVIEW开始限制编译器优化的复杂度阈值。
提示 将大型VI分割为子VI可完全避免上述权衡。该方法不仅降低了VI代码复杂度,还提高了LabVIEW的响应速度、运行速度和代码可读性。
如无法将较大的VI分解为若干子VI,在下列情况下,考虑修改复杂度阈值:
- LabVIEW编译较大的VI时产生时滞。
- 编译VI时,LabVIEW抛出内存不足的错误。
- 开发了一个较大的复杂VI,想要优化其执行速度。
操作步骤
按照下列步骤,选择LabVIEW响应速度和VI执行速度的优先次序:
- 确定要更改编辑器响应或执行速度的VI。虽然复杂度阈值是适用于所有VI的环境设置,但您可以使用个别VI的复杂度来决定当前阈值是否达到您对VI的目标。
- 确定VI的复杂度。请参考VI属性对话框中内存使用页的编译代码复杂度值。
- 将VI的复杂度与编译器优化的阈值进行比较。请参考选项对话框环境页的编译器优化滑块。VI复杂度的值如超过滑块指示的值,编译器限制优化以提高LabVIEW的响应速度。如VI复杂度没有超过滑块指示的值,编译器将对VI进行优化。
- 调整复杂度阈值。
- 如要将LabVIEW的响应速度置于较高的优先级,或者要避免内存不足的错误,将滑块的值减低到VI复杂度以下。
- 如要将VI的执行速度置于较高的优先级,将滑块的值提高到VI复杂度以上。
- 重新编译VI以应用更改。(Windows)按<Ctrl>键,同时单击运行按钮。(macOS)按<Command>键,同时单击运行按钮。(Linux)按<Alt>键,同时单击运行按钮。
- 完成开发或部署VI后,将复杂度阈值改为5。由于复杂度阈值适用于所有VI,NI建议用户通常使用默认值5作为阈值。该值能使大多数VI保持较好的响应速度和执行速度。
提示和疑难解答
- 要避免在响应速度和执行速度之间抉择,可将大型VI的部分代码转换为子VI。该方法不仅能够实现较高的响应和执行速度,还能提高代码的可读性。
- 如无法辨别哪个VI造成了生成时间过长或内存不足的错误,可每次减少编译器优化滑块一个单位值,直到问题解决为止。
- 复杂度阈值将应用于所有VI。因此,如阈值不是默认值,其他VI的响应速度或执行速度会出现意外变化。
- 生成的应用程序用于运行在PowerPC或ARM架构上的终端(分别为VxWorks和NI Linux Real-Time终端)时,编译器忽略复杂度阈值。上述终端要求VI使用必要的编译器优化。因此,在生成这类应用程序时将阈值降低到VI复杂度之下也不会提高程序生成的速度,将阈值提高到VI复杂度之上也不会提高VI的执行速度。
- 也可使用编译:代码复杂度、编译:最近一次编译、应用程序:编译器阈值属性来设置VI复杂度和复杂度阈值。