为什么我使用LabVIEW时,收到“Memory is Full ”报错
答案:2 悬赏:30 手机版
解决时间 2021-03-23 07:44
- 提问者网友:咪咪
- 2021-03-22 13:33
为什么我使用LabVIEW时,收到“Memory is Full ”报错
最佳答案
- 五星知识达人网友:逐風
- 2021-03-22 13:47
在LabVIEW中处理过于庞大的数组时,通常发生这种错误。LabVIEW默认在连续的内存空间上存储数组。当LabVIEW无法在RAM中开辟一个足够大的连续的内存空间存储你的数组时,报错Memory is Full 。例如,一个2000x2000 双精度数组大约需占据32 MB内存。你至少需要32 MB以上的空闲RAM空间,并且保证它们是连续的,才不至于报错。有多种方法可以解决这一错误:
为你的数组使用一个占用内存空间更小的数据类型。例如,如果你存储的数据范围仅为0到100,可以使用U8代替其他整数类型表示数据,如此占用的内存空间仅为默认数据类型双精度表示的1/8。
如果这一错误产生于图形化显示数据,有一个更为简单的处理方法。对于一个过大的数组,你一次性图形化显示所有数组数据,可能无法看清每一个数据点(受限于屏幕支持的分辨率)。此时,最好在图形化显示数据前,对数据进行抽取处理(例如,每两个数据点仅显示其一)。
更改数据算法压缩数据量,例如使用"chunking"。尽管这会复杂化算法,但是你可以得到更小的数据量。以下链接提供了压缩数据算法的详细说明:
Managing Large Data Sets in LabVIEW
使用高效能数据分析包完成对过大数组的处理,例如NI DIAdem.
为你的系统配置更大的虚拟内存空间。以下链接提供了相关的详细说明:
How Can Virtual Memory Help With Memory Issues in LabVIEW?
你可以使用Profile Performance and Memory Window.进一步分析VI内存使用情况。
为你的数组使用一个占用内存空间更小的数据类型。例如,如果你存储的数据范围仅为0到100,可以使用U8代替其他整数类型表示数据,如此占用的内存空间仅为默认数据类型双精度表示的1/8。
如果这一错误产生于图形化显示数据,有一个更为简单的处理方法。对于一个过大的数组,你一次性图形化显示所有数组数据,可能无法看清每一个数据点(受限于屏幕支持的分辨率)。此时,最好在图形化显示数据前,对数据进行抽取处理(例如,每两个数据点仅显示其一)。
更改数据算法压缩数据量,例如使用"chunking"。尽管这会复杂化算法,但是你可以得到更小的数据量。以下链接提供了压缩数据算法的详细说明:
Managing Large Data Sets in LabVIEW
使用高效能数据分析包完成对过大数组的处理,例如NI DIAdem.
为你的系统配置更大的虚拟内存空间。以下链接提供了相关的详细说明:
How Can Virtual Memory Help With Memory Issues in LabVIEW?
你可以使用Profile Performance and Memory Window.进一步分析VI内存使用情况。
全部回答
- 1楼网友:詩光轨車
- 2021-03-22 14:35
在LabVIEW中处理过于庞大的数组时,通常发生这种错误。LabVIEW默认在连续的内存空间上存储数组。当LabVIEW无法在RAM中开辟一个足够大的连续的内存空间存储...
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯