LabVIEW性能和内存管理 4

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

LabVIEW性能和内存管理 4

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

传输缓冲区

传输缓冲区保护操作缓冲区和执行缓冲区之间的数据传输

只有当前面板在内存中时才更新

为了保护操作和执行缓冲区之间的数据传输,LabVIEW使用传输缓冲区。当您处理大型数据集,并且必须显示对该数据的操作时,这可能会导致更多的内存使用。传输缓冲区和执行将在“优化执行速度”中介绍。


局部变量和全局变量


局部变量更新数据传输缓冲区。


读取本地或全局变量总是会导致数据复制

在可能的情况下使用连线传输数据


注意,在左边的示例中,当使用连线传输数据时,只需要分配1个缓冲区。如果从控件的局部变量读取,则生成一个副本。在本例中,生成了三个副本,每个读取的局部变量对应一个副本。同样,如果局部变量包含大型集群或数组,则这一点更加重要。请注意,即使从同一个变量读,然后再写,这也适用。局部变量永远不能原地操作,因为局部变量可能引用传输缓冲区,而不能对传输缓冲区进行原地操作。


本地变量与VI服务器属性节点

局部变量

可以在任何线程中运行

复制到/从传输缓冲区

如果前面板在内存中,写操作会导致第二次拷贝进入操作缓冲区(尽可能避免)

在速度很重要的时候使用

属性节点

必须在UI线程中运行


复制到/从操作缓冲区


写操作导致第二次拷贝进入传输缓冲区


在内存中强制前面板


需要同步显示时使用


如果可能的话,两者都要避免


这里列出的规则是针对VIServer属性节点的——它们不适用于用于DAQ、LV类等的属性节点。


Data by Reference

操作对数据的引用,而不是数据本身


分支连线可能导致连线上的数据的副本。如果多个分支修改该值,或者一个分支在另一个分支完成使用原始值之前修改该值,那么这总是正确的。数据值参考(DVR)允许在不复制的情况下操作数据。这在处理性能关键型应用程序中的大型数组时尤其有用。


考虑一下这个场景:你给朋友发电子邮件,与他们分享视频。如果你在电子邮件中包含了整个视频,朋友们会很生气,因为这个文件占了他们收件箱的空间。所以,你要附上在线视频地址的链接。因为所有的收件人都在网上引用同一个地点,所以每个人都能看到最新版本的视频,以防它被修改。


Data ValueReferences


作为数据的引用,而不是完整的数据本身

能否保护对数据的访问


在LabVIEW2009中引入的数据值参考和single element queues是传输大型数据集的非常有效的方法。在“内存优化”中介绍更多关于这些结构的知识,但它们之所以值得一提,是因为它们有助于在整个VI层次结构中移动大型数据集,同时最小化内存使用。重要的是要注意,必须使用InPlace Element结构来访问数据值引用的数据。


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

相关文章
|
18天前
|
存储 编解码 安全
阿里云服务器计算型、通用型、内存型主要实例性能及选择参考
在阿里云的活动中,属于计算型实例规格的云服务器主要有计算型c7、计算型c7a、计算型c8a、计算型c8y、计算型c8i这几个实例规格,属于通用型实例规格的云服务器有通用型g7、通用型g7a、通用型g8a、通用型g8y、通用型g8i,属于内存型实例规格的云服务器有内存型r7、内存型r8a、内存型r8y、内存型r8i等实例。不同实例规格的云服务器在架构、计算、存储、网络、安全等方面有着不同,因此,其适用场景也有所不同。本文来详细介绍一下阿里云服务器计算型、通用型、内存型主要实例计算、存储等性能及其适用场景,以供参考。
阿里云服务器计算型、通用型、内存型主要实例性能及选择参考
|
18天前
|
编译器
LabVIEW使用数据引用减少内存
LabVIEW使用数据引用减少内存
22 2
|
18天前
LabVIEW中CPU和内存使用情况在NI分布式系统管理器中不可见
LabVIEW中CPU和内存使用情况在NI分布式系统管理器中不可见
21 3
|
18天前
|
监控 Linux API
LabVIEW监控实时嵌入式目标上的CPU和内存使用情况
LabVIEW监控实时嵌入式目标上的CPU和内存使用情况
185 4
|
18天前
|
Linux Shell API
LabVIEW最大内存块属性不存在
LabVIEW最大内存块属性不存在
10 2
|
18天前
|
Go
LabVIEW性能和内存管理 8
LabVIEW性能和内存管理 8
13 0
|
18天前
|
存储 程序员
LabVIEW性能和内存管理 7 LabVIEW中局部和全局变量的内存分配
LabVIEW性能和内存管理 7 LabVIEW中局部和全局变量的内存分配
13 0
|
18天前
|
存储
LabVIEW性能和内存管理 6
LabVIEW性能和内存管理 6
13 0
|
18天前
|
测试技术 索引
LabVIEW性能和内存管理 5
LabVIEW性能和内存管理 5
14 0
|
16天前
|
存储 算法 关系型数据库
实时计算 Flink版产品使用合集之在Flink Stream API中,可以在任务启动时初始化一些静态的参数并将其存储在内存中吗
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
93 4