LabVIEW使用数据引用减少内存

这篇具有很好参考价值的文章主要介绍了LabVIEW使用数据引用减少内存。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

概览 NI LabVIEW 省略了 开发 软件时 需要 手动 管理 内存。LabVIEW 编译器 始终 会 分析 您 的 代码, 以 确定 如何 优 化 性能 并 减少 所需 的 内存 量。但是, 想要 更多 控制 内存 分配 的 高级 用户 可以 在 LabVIEW 2009 中创建 数据 引用。

内容

  • 背景

  • 基本示例

  • 对类使用引用

  • 其他资源

背景 分支 线路 通常 要求 LabVIEW 在 线路 上 创建 数据 的 副本。如果两个分支都修改该值,或者如果一个分支在使用原始值完成之前修改该值,则始终如此。使用 LabVIEW 工具 中的 “显示 缓冲 器 分配” 选项 来 突出显示 编 譯 器 将 分配 额外 内存 的 位置。 返回页首 基本示例 “新建数据值引用”节点将任何数据作为输入,并创建对数据的引用。请注意,如果数据被分叉并在其他地方使用,则仍可能发生复制。

LabVIEW使用数据引用减少内存,LabVIEW知识,LabVIEW,LabVIEW开发,LabVIEW编程,LabVIEW升级

编辑

添加图片注释,不超过 140 字(可选)

图1.“新建数据值引用”节点创建对数据的引用,可用于以序列化方式传输和访问数据。 两个新节点可用于就地元素结构,以对数据进行操作,并在原始内存位置替换数据。同一个VI中可以存在多个就地元素结构,但一次只能对来自参考的数据进行操作,因为它们是阻塞函数以防止竞争条件。

LabVIEW使用数据引用减少内存,LabVIEW知识,LabVIEW,LabVIEW开发,LabVIEW编程,LabVIEW升级

编辑切换为居中

添加图片注释,不超过 140 字(可选)

图2.此VI代码段说明了如何使用此功能的示例。要在LabVIEW 2009中尝试此示例,请将图像拖到框图中。 为了帮助您理解此图,请考虑下图中显示的各个组件:

  1. 为其创建引用的数据的值为 5。

  2. “新数据值”Reference.vi 为这位数据创建引用。

  3. 这是数据引用的常量外观的示例。

  4. 就地元素结构具有一对用于数据值引用读/写的节点,分别用于取消引用和重新引用数据。此结构阻止执行使用相同引用的其他结构,直到它完成并且数据被重新引用。

  5. 如果引用无效,则数据值引用读取节点的错误输出线为“True”。您还将从写入值引用节点收到此工作,因此您不必合并这些错误。

  6. “删除数据值”Reference.vi 结束引用的生存期并返回最后一个已知值。

  7. 这是前面板指示器的终端示例。

错误处理 如果 您 需要 同时 获取 多个 参考, LabVIEW 将 在 结构 边界 处 等待, 直到 获取 了 所有 参考 源。如果任何引用是错误的引用,则必须将所有错误合并在一起,然后才能知道是否要执行任何工作。 返回页首 对类使用引用 可以将数据引用用于任何数据类型,包括类。LabVIEW 类 具有 分层 关系, 对 类 的 引用 模拟 该 层次 结构。换句话说,期望父类引用的子VI可以传递子类引用。 LabVIEW 类 的 配置 选项 可 让 您 能够 限制 创建 和 销毁 对 类 成员 VI 的 引用。您可以保证,只要您在任何其他VI的图上遇到该类型,对该类的任何引用都是通过正确的初始化方法定义的。

LabVIEW使用数据引用减少内存,LabVIEW知识,LabVIEW,LabVIEW开发,LabVIEW编程,LabVIEW升级

编辑

添加图片注释,不超过 140 字(可选)

图3.您 可以 从 LabVIEW 类 的 属性 对话框 中 限制 对 类 的 引用 的 创建 和 删除。 如果类被标记为只有成员VI可以为该类创建引用,那么当您尝试在任何其他VI的图上创建对该类类型的引用时,New Data Reference函数就会中断 - 默认情况下启用此功能。不能限制对类的集群或类的数组的引用。 必须在运行时维护引用的类型,这意味着不能交换数据值。借助 新的 保留 运行 时间 Class.vi 基元, LabVIEW 可以 保证 运行 时间 类型 的 一致性, 您 可以 使用 该 来 交换 两个 值。如果需要允许您更改基础对象的类引用,请创建对该类的集群的引用。这使您能够以分层强制转换为代价交换值。

LabVIEW使用数据引用减少内存,LabVIEW知识,LabVIEW,LabVIEW开发,LabVIEW编程,LabVIEW升级

编辑

添加图片注释,不超过 140 字(可选)

图4.“保留运行时 Class.vi”使您能够交换不同引用的值。 第二个选项允许父类成为所有后代类型引用的独占工厂,默认情况下禁用。该限制的工作方式与对类本身的引用的限制相同。 如果您有子类的数据引用,则可以使用“到更多”Generic.vi 向上转换为父类引用。同样,以后可以使用“到更多”Specific.vi 将引用恢复为原始类型。当您将 ref-to-child-class 连线连接到 ref-to-parent-class 终端时,会出现向上投射强制点。文章来源地址https://www.toymoban.com/news/detail-567872.html

到了这里,关于LabVIEW使用数据引用减少内存的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • python使用迭代生成器yield减少内存占用的方法

    在python编码中for循环处理任务时,会将所有的待遍历参量加载到内存中。 其实这本没有必要,因为这些参量很有可能是一次性使用的,甚至很多场景下这些参量是不需要同时存储在内存中的,这时候就会用到本文所介绍的迭代生成器yield。 首先我们用一个例子来演示一下迭代

    2024年04月28日
    浏览(24)
  • LabVIEW编程开发天气监测系统

    Munandar et al. (2018) proposed a weather monitoring system by using automatic weather station [1]. The data logger and serial communication is used for data transmission, and kept in web server. Antony Jerome, et al. (2017) published a LabVIEW system using NI my Rio module for Autohome applications [2]. Weather analyzer by using LabVIEW is proposed by Dam

    2024年02月08日
    浏览(28)
  • 在python中实现使用迭代生成器yield减少内存占用的方法

    在python编码中for循环处理任务时,会将所有的待遍历参量加载到内存中。其实这本没有必要,因为这些参量很有可能是一次性使用的,甚至很多场景下这些参量是不需要同时存储在内存中的,这时候就会用到本文所介绍的迭代生成器yield。 首先我们用一个例子来演示一下迭代

    2024年02月11日
    浏览(29)
  • C/C++编译器内存优化技术:内存优化关注程序对内存的访问和使用,以提高内存访问速度和减少内存占用。

    在日常生活中,我们常常会为了提高效率、节省资源而进行各种优化。而在计算机领域,优化是至关重要的一环,尤其是当涉及到编程语言和编译器时。本文将从心理学的角度,带您领略C++编译器内存优化技术的奥秘,并引导您深入学习这一技术。 正如心理学家所研究的,人

    2023年04月22日
    浏览(53)
  • LabVIEW CompactRIO 开发指南 3 选择CompactRIO编程模式

    第二章 选择CompactRIO编程模式 第一章中介绍的CompactRIO架构为我们提供了通过LabVIEW FPGA定制FPGA硬件或使用NI CompactRIO扫描模式来实现I/O的选项。如果计算机上有LabVIEW Real-Time和LabVIEW FPGA,那么当向LabVIEW项目添加CompactRIO目标时,将提示选择想要使用的编程模式。在选择一种模式后

    2024年02月02日
    浏览(24)
  • .NET高级面试指南专题二十七【享元模式介绍,通过共享对象来最大程度地减少内存使用和提高性能】

    享元模式是一种结构型设计模式,旨在通过共享对象来最大程度地减少内存使用和提高性能。 在享元模式中,对象被分为两种部分:内部状态( intrinsic state )和外部状态( extrinsic state )。内部状态是对象共享的部分,而外部状态是对象的变化部分,它们在对象被创建后可

    2024年04月27日
    浏览(28)
  • 【LabVIEW FPGA入门】使用LabVIEW FPGA进行编程并进行编译

            在本文中会进行一个简单的FPGA编程演示,这通常可以验证编译工具链是否正常使用。在LabVIEW FPGA中和rt、PC编程一样使用数据流编程,但是需要注意的是FPGA中有些函数是不可以用的,因为这些函数很占用资源,且FPGA只能同时下载运行一个程序。         1.在FPGA终端

    2024年01月17日
    浏览(26)
  • 【LabVIEW FPGA 编程入门】使用FPGA IO进行编程

            1.在项目中新建一个VI,命名为FPGA IO Test。         2. 可以直接将项目中的FPGA IO拖入程序框图中。      FPGA IO的类型: 数字线: 数字端口: 模拟IO: 其他:           3.如果新增加了FPGA资源,不是创建项目时扫描到的,则需要将FPGA IO添加到项目中。 首先需要

    2024年01月17日
    浏览(31)
  • 享元模式:减少内存占用的诀窍

    享元模式(Flyweight Pattern)是一种结构型设计模式,它主要通过共享对象来降低系统中对象的数量,从而减少内存占用和提高程序性能。这听起来有点像单例模式,但它们在实现和用途上有很大的区别。享元模式的核心是把一个对象的状态分成内部状态和外部状态,内部状态

    2024年02月08日
    浏览(32)
  • LabVIEW操作MySQL数据库(4)-编程实例(含源程序下载链接)

    下面以文章《LabVIEW操作MySQL数据库(1)-MySQL的下载、安装和重新配置》、《LabVIEW操作MySQL数据库(2)-使用MySQL WorkBench创建数据库及其表格和操作表格记录的方法》和《LabVIEW操作MySQL数据库(3)-创建LabVIEW程序与MySQL数据库的连接通道》中建立的数据库thmonitoring和ODBC数据源labview为基础

    2024年02月04日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包