LabVIEW性能和内存管理 4

news2025/1/11 7:02:16

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开发等相关项目,可联系们。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/11269.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

17-Explain执行计划-01

Explain 执行计划 什么是执行计划 有了慢查询语句后,就要对语句进行分析。一条查询语句在经过 MySQL 查询优化器的各种基于成本和规则的优化会后生成一个所谓的执行计划,这个执行计划展示了接下来具体执行查询的方式,比如多表连接的顺序是什…

Java基于springboot +vue的箱包销售购物网站 多商家

随着人们生活的节奏越来越快,很多时候人们在外出的时候会有大包小包。所以这个时候如何选择适合自己的物美价廉的箱包是一个很重要的环节。选对了箱包不仅能够增加大街上的回头率同时也能够方便自己的出行。当前箱包市场鱼目混杂且价格昂贵。随着互联网的发展&#…

intellij plugin(插件)的项目解析及研读

文章目录资料action_basics (基本的响应操作)plugin.xmlCustomDefaultActionGroupPopupDialogActionDynamicActionGroupcomparing_references_inspection (关注代码提示)conditional_operator_intention [未成功复现]editor_basics (选择文字替换等)Caret PositionEditor Add C…

java项目-第137期jsp+servlet的周公算命预测系统-java毕业设计

java项目-第137期jspservlet的周公算命预测系统-计算机毕业设计 【源码请到资源专栏下载】 今天分享的项目是《周公算命预测系统》 该项目分为管理员和普通用员2个角色。 管理员主要负责后台的信息维护:算命分类管理(比如八字、星座、相命)、管理员信息管理、用户信…

实用数据结构【并查集】 - 原理

实用数据结构【并查集】 - 原理 [一个问题] 若某个部落过于庞大,则部落成员见面也有可能不认识。 已知某个部落的成员关系图,任意给出其中两个人,判断是否有亲戚关系。规定:①若x、y 是亲戚,y 和z 是亲戚&#xff0…

【C++】string的模拟实现

目录 一、std::swap和std::string::swap的区别 二、string的默认构造函数 1、构造函数 2、拷贝构造 3、赋值运算符重载 4、析构函数 三、string中的小接口 四、遍历接口的实现 1、对operator[]进行重载 2、迭代器 五、reserve和resize 六、插入删除查找相关接口 1…

DirtyCow脏牛漏洞复现(CVE-2016-5195)

DirtyCow脏牛漏洞复现 本文以vulnhub靶场中的lampiao为例复现脏牛提权漏洞 扫描c段 nmap -sS -Pn 192.168.1.0/24找到疑似ip 对该ip端口进行扫描,多扫出个1898端口 nmap -A -sV -p- 192.168.1.13访问80端口,没有有用的信息 1898也是个apche的http服务…

立足小餐饮,“新名酒”江小白能走多远?

(图片来源于网络,侵删) 来源 | 螳螂观察 文 | 叶小安 白酒市场从不缺新故事,但一直缺年轻人喜欢的白酒。 上月底,江小白旗下江记酒庄获重庆市江津区华信集团10亿元战略投资。与此同时,江小白产品理念升…

技术贴 | Rocksdb 中 Memtable 源码解析

一、什么是 Memtable? Memtable 是 Rocksdb 在内存中保存数据的一种数据结构,一个 Memtable 的容量是固定的,在 Memtable 写满后,会转换为 Immutable Memtable,Immutable Memtable 中的数据会 Flush 到 SST File 中。…

编程中老生常谈的【编码规范】你还记得多少?进来回顾一下吧【文末送书】

🎬 博客主页:https://xiaoy.blog.csdn.net 🎥 本文由 呆呆敲代码的小Y 原创,首发于 CSDN🙉 🎄 学习专栏推荐:Unity精品学习专栏 🌲 游戏制作专栏推荐:游戏制作分享 &…

【genius_platform软件平台开发】第八十一讲:ARM Neon指令集一(ARM NEON Intrinsics, SIMD运算, 优化心得)

1. ARM Neon Intrinsics 编程 1.入门:基本能上手写Intrinsics 1.1 Neon介绍、简明案例与编程惯例 1.2 如何检索Intrinsics 1.3 优化效果案例 1.4 如何在Android应用Neon 2. 进阶:注意细节处理,学习常用算子的实现 2.1 与Neon相关的ARM体系结…

寻 友 软 件

寻友软件项目技术技术功能部署Redis部署RocketMQJWT(Json Web Token)虹软人脸识别部署MongoDB(尽量不用docker部署mongo)部署Nginx过滤器及拦截器加缓存编码流程DOC接口文档bug技术 技术 前端: flutterandroid环信S…

分销微信小程序介绍_分销小程序有什么作用呢

不同的微商城系统对于分销功能的支持会有不要的叫法,一般来说主要有两种,一种是基于商品分享的分销方式,通过分享链接识别客户从属关系,订单完成,结算佣金;另一种分销商可以建立并独立运营一个分销店铺&…

【JavaSE】关于多态那些事儿

目录 1. 多态 1.1 多态的概念 1.2 多态实现条件 1.3 向上转型 1.3.1 直接赋值 1.3.2 方法传参 1.3.3 方法返回 1.3.4 向上转型的优缺点 1.4 重写 1.4.1 重写的条件 1.4.2 重写注意事项 1.4.3 重载与重写的区别 1.5 通过父类的引用,调用这个父类和子类重…

CSS篇十六——盒子模型之边框

目录一、CSS盒子模型1.1 盒子模型组成1.2 边框(border)1.2.1 语法格式1.2.2 边框样式 border-style1.2.3 代码示例1.3 表格的细线边框1.3.1 语法格式、代码示例及结果一、CSS盒子模型 网页布局过程: 1.先准备好相关的网页元素,网…

My sql的深度剖析

一.数据库的创建、删除、使用 数据库的创建:create database 数据库名 数据库的删除:drop database 数据库名; 数据库的使用:use数据名; 所有数据库的查看:show databases; 建立数据时如何指定字符集…

在Java中计算Levenshtein莱文斯坦(相似度)编辑距离

在本教程中,我们将研究 Levenshtein 距离算法,该算法也称为编辑距离算法,用于比较单词的相似性。 什么是列文施泰因距离 Levenshtein距离算法由俄罗斯科学家Vladimir Levenshtein创建。 Levenshtein 距离算法通过计算将一个字符串转换为另…

基于单片机的贪吃蛇设计

1 绪论 1.1 设计目的 在21世纪的今天,人们的生活开始变得更加丰富多彩。在繁忙的工作之余,娱乐成为人们生活不可或缺的一份子,而游戏作为近年来逐渐兴起的一种娱乐方式,已经越来越受到人们的青睐。在工作学习之余&#…

dreamweaver网页设计作业制作 学生NBA篮球网页 WEB静态网页作业模板 大学生校园篮球网页代码 dw个人网页作业成品

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

第五章:双指针与离散化的映射

第五章:双指针、离散化、二进制运算与区间合并一、双指针1、什么是双指针?2、双指针的模板3、双指针例题(1)思路:(2)解答:C版:C版:二、离散化1、什么是离散化…