在LabVIEW中高效使用内存

本文来自LabVIEW自带帮助文件中的节选。想细致研究的朋友,可以在LabVIEW的帮助文件的索引中输入关键字“内存使用”进行搜索,并找到本文的全部内容。

VI内存使用

LabVIEW可处理大量在文本编程语言中必须由用户处理的细节。文本编程语言的一大挑战是内存的使用。在文本编程语言中,编程者必须在内存使用的前后分配及释放内存。同时,编程者必须注意所写入数据不得超过已分配的内存容量。因此,对于使用文本编程语言的编程者来说,最大问题之一是无法分配内存或分配足够的内存。内存分配不当也是很难调试的问题。

LabVIEW的数据流模式解决了内存管理中的诸多难题。在LabVIEW中无需分配变量或为变量赋值。用户只需创建带有连线的程序框图来表示数据的传输。

生成数据的函数将分配用于保存数据的空间。当数据不再使用,其占用的内存将被释放。向数组或字符串添加新数据时,LabVIEW将自动分配足够的内存来管理这些新数据。

这种自动的内存处理功能是LabVIEW的一大特色。然而,自动处理的特性也使用户无法控制其开始的时间。在程序处理大宗数据时,用户也应了解内存分配的发生时机。了解相关的原则有利于用户编写出占用内存更少的程序。同时,由于内存分配和数据复制会占用大量执行时间,了解如何尽可能降低内存占用也有利于提高VI的执行速度。


高效使用内存的规则

上节内容的要点在于编译器智能地作出重复使用内存的决策。编译器何时能复用内存何时不能复用的规则更为复杂。以下规则有助于在实际操作中创建能高效使用内存的VI:

  • 将VI分为若干子VI一般不影响内存的使用。在多数情况下,内存使用效率将提高,这是由于子VI不运行时执行系统可取回该子VI所占用的数据内存。
  • 只有当标量过多时才会对内存使用产生负面影响,故无须太介意标量值数据副本的存在。
  • 使用数组或字符串时,请不要滥用全局变量和局部变量。读取全局或局部变量时,LabVIEW都会生成数据副本。
  • 如无必要,不要在前面板上显示大型的数组或字符串。前面板上的输入控件和显示控件会为其显示的数据保存一份数据副本。
提示:  如要用到图表显示控件,需注意图表将保留其显示的历史数据。图表历史中存满历史数据后,LabVIEW将停止占用内存。VI重新运行时,LabVIEW不会自动清除图表历史。所以,在程序执行过程中,需清除图表的历史数据。可将空数组写入图表的历史数据属性节点。
  • 延迟前面板更新属性。将该属性设置为TRUE时,即使控件的值被改变,前面板显示控制器的值也不会改变。操作系统无须使用任何内存为输入控件填充新的值。
注:  LabVIEW通常不会在调用子VI时打开子VI的前面板。
  • 如并不打算显示子VI的前面板,那么不要将未使用的属性节点留在子VI上。属性节点将导致子VI的前面板被保留在内存中,造成不必要的内存占用。
  • 设计程序框图时,应注意输入与输出大小不同的情况。例如,如使用创建数组连接字符串函数而使数组或字符串的尺寸被频繁扩大,那么这些数组或字符串将产生其数据副本。
  • 在数组中使用一致的数据类型并在数组将数据传递到子VI和函数时监视强制转换点。当数据类型被改变时,执行系统将为其复制一份数据。
  • 不要使用复杂和层次化的数据结构,如含有大型数组或字符串的簇或簇数组。这将占用更多的内存。应尽可能使用更高效的数据类型
  • 如无必要,不要使用透明或重叠的前面板对象。这样的对象可能会占用更多内存。

虚拟内存

在32位Windows操作系统上扩展虚拟内存使用

LabVIEW可访问大地址,可利用3 GB的虚拟内存。LabVIEW默认情况下可访问2 GB的虚拟内存。要使用更多的虚拟内存,必须修改Windows的启动配置设置。Windows 7和Windows Vista将启动设置保存在相同的位置,Windows XP则有所不同。本文档介绍在不同的Windows操作系统上修改启动配置的步骤。

注:   在64位Windows操作系统上,默认情况下,LabVIEW可访问4 GB的虚拟内存。在64位的Windows操作系统上,不需进行任何操作,LabVIEW就能访问4GB的虚拟内存。

使LabVIEW能在Windows 7和Windows Vista上使用3 GB虚拟内存

(Windows 7/Vista) 按照下列步骤,修改Windows启动配置设置,使LabVIEW能够访问3 GB虚拟内存。

  1. 以管理员身份打开命令提示符窗口。
    1. 在Windows开始菜单中找到命令提示符程序。
    2. 右键单击程序名称,从快捷菜单中选择以管理员身份运行
    3. 如出现提示对话框,输入Windows管理员用户名和密码。如已登录为Windows管理员,在出现的对话框中单击继续按钮。只有管理员才可以修改启动配置设置。
  2. 输入命令bcdedit /enum,然后按 <Enter>键,显示启动配置数据(BCD)存储的条目。这些设置控制如何启动操作系统。
  3. 输入命令bcdedit /set increaseuserva 3072,然后按<Enter>键。该命令将操作系统分配的虚拟内存增加至3072MB,即3GB。
  4. 重启系统,使BCD的改动生效。

使LabVIEW能在Windows XP上使用3 GB虚拟内存

(Windows XP) 按照下列步骤,修改Windows启动配置设置,使LabVIEW能够访问3 GB虚拟内存。

  1. 找到Windows的boot.ini文件。Widnows将该文件保存在C盘。只有将Windows浏览器配置为显示系统文件,才能看到该文件。如没有在C:/目录下找到boot.ini文件,则完成下列步骤。
    1. 在Windows浏览器中,在地址栏输入C:/boot.ini
    2. boot.ini文件将在默认的文本编辑器中打开。
  2. 保存boot.ini的备份至操作系统之外的目录。
  3. 在原来的boot.ini文件中,找到Windows启动的相关行。该行在Windows XP操作系统上可能为:

    [operating systems]
    multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Microsoft Windows XP Professional" /fastdetect /NoExecute=OptIn /3GB
  4. 将标签/3GB添加在行末。该标签意味着操作系统的内核,即核心组件,使用1GB虚拟内存,其余3GB虚拟内存用于应用程序。
  5. 保存并关闭boot.ini文件。
  6. 重启系统,使boot.ini文件的改动生效。

  • 5
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值