LabVIEW性能和内存管理 5

简介: LabVIEW性能和内存管理 5

LabVIEW性能和内存管理 5

本文介绍LabVIEW性能和内存管理的几个建议 5。

内存重新分配

在有条件地向数组添加值以及能否确定数组大小的上限的时候采用预分配数组。

使用While循环时,自动索引的效率不高,因为数组的结束大小是未知的。然而,While Loop自动索引通过大幅增加输出数组的大小,避免了每次迭代时都调整输出数组的大小。当循环完成执行时,输出数组的大小被调整到正确的大小。While循环自动索引的性能与For循环自动索引的性能几乎相同。


自动索引假设将在循环的每次迭代中向结果数组添加一个值。如果必须有条件地向数组添加值,但可以确定数组大小的上限,请考虑预分配数组并使用替换数组子集来填充数组。


填充数组值之后,可以将数组的大小调整到正确的大小。该数组只创建一次,“替换数组子集”可以将输入缓冲区重用为输出缓冲区。这段代码的性能与使用自动索引的循环的性能非常相似。如果使用这种技术,请确保替换值的数组足够大,能够容纳结果数据。替换数组子集不会为调整数组的大小。


上面的例子展示了这个过程。


使用上述技术可以避免内存重新分配。替换数组子集函数的操作效率很高,因为它替换预先分配的数组中的值。防止内存重新分配的最佳方法是确定数组中有多少个元素,然后分配足够的内存。


Conditional Indicators

•  An indicatorinside a Case structure or For Loop

•  Prevents LabVIEWfrom reusing data buffers


构建blockdiagram的方法可能会阻止LabVIEW重用数据缓冲区。在SubVI中使用条件指示符会阻止LabVIEW优化数据缓冲区的使用。条件指示符是Case结构或For循环中的指示符。在有条件执行的代码路径中放置指示符会中断通过系统的数据流,LabVIEW不会重用来自输入的数据缓冲区。相反,LabVIEW强制数据拷贝到指示器中。这样做的原因是,如果没有执行条件路径,为了直接更新指示器,LabVIEW必须将默认数据传递给指示器。


当在Case结构和For循环之外放置指示符时,LabVIEW直接修改循环或结构内的数据,并将数据传递给指示符,而不是创建数据副本。可以为备选用例创建常量,而不是在Case结构中放置指示符。


在VI分析器中,导航到框图»性能测试。在子图测试中启用有线终端以识别代码中的条件指示器。


In VI Analyzer,navigate to the Block Diagram»Performance tests. Enable the Wired Terminals inSubdiagrams test to identify conditional indicators in your code.


这在LabVIEW帮助的VI内存使用主题中有描述。


需要说明的是,上述的例程和文档,都是可以下载的,双击即可打开,其中压缩文件是可以采用粘贴复制的方式,拷贝到硬盘上。这不是图片,各位小伙伴看到后尝试一下,这个问题就不用加微信咨询了。有关LabVIEW编程、LabVIEW开发等相关项目,可联系们。

相关文章
|
5天前
|
存储 编解码 安全
阿里云服务器计算型、通用型、内存型主要实例性能及选择参考
在阿里云的活动中,属于计算型实例规格的云服务器主要有计算型c7、计算型c7a、计算型c8a、计算型c8y、计算型c8i这几个实例规格,属于通用型实例规格的云服务器有通用型g7、通用型g7a、通用型g8a、通用型g8y、通用型g8i,属于内存型实例规格的云服务器有内存型r7、内存型r8a、内存型r8y、内存型r8i等实例。不同实例规格的云服务器在架构、计算、存储、网络、安全等方面有着不同,因此,其适用场景也有所不同。本文来详细介绍一下阿里云服务器计算型、通用型、内存型主要实例计算、存储等性能及其适用场景,以供参考。
阿里云服务器计算型、通用型、内存型主要实例性能及选择参考
|
5天前
|
编译器
LabVIEW使用数据引用减少内存
LabVIEW使用数据引用减少内存
12 2
|
5天前
LabVIEW中CPU和内存使用情况在NI分布式系统管理器中不可见
LabVIEW中CPU和内存使用情况在NI分布式系统管理器中不可见
13 3
|
5天前
|
监控 Linux API
LabVIEW监控实时嵌入式目标上的CPU和内存使用情况
LabVIEW监控实时嵌入式目标上的CPU和内存使用情况
17 4
|
5天前
|
Linux Shell API
LabVIEW最大内存块属性不存在
LabVIEW最大内存块属性不存在
|
5天前
|
Go
LabVIEW性能和内存管理 8
LabVIEW性能和内存管理 8
10 0
|
5天前
|
存储 程序员
LabVIEW性能和内存管理 7 LabVIEW中局部和全局变量的内存分配
LabVIEW性能和内存管理 7 LabVIEW中局部和全局变量的内存分配
|
5天前
|
存储
LabVIEW性能和内存管理 6
LabVIEW性能和内存管理 6
|
5天前
LabVIEW性能和内存管理 4
LabVIEW性能和内存管理 4
10 0
|
17小时前
|
存储 弹性计算 监控
【阿里云弹性计算】深入阿里云ECS配置选择:CPU、内存与存储的最优搭配策略
【5月更文挑战第20天】阿里云ECS提供多种实例类型满足不同需求,如通用型、计算型、内存型等。选择CPU时,通用应用可选1-2核,计算密集型应用推荐4核以上。内存选择要考虑应用类型,内存密集型至少4GB起。存储方面,系统盘和数据盘容量依据应用和数据量决定,高性能应用可选SSD或高效云盘。结合业务特点和预算制定配置方案,并通过监控应用性能适时调整,确保资源最优利用。示例代码展示了使用阿里云CLI创建ECS实例的过程。
19 5