完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
labview中内存已满的错误 在LabVIEW中开发大型应用程序时,有时会收到以下错误消息: 有大量的可用内存,为什么会收到此错误消息? 解决方案 在开发具有大型数组,簇或波形的应用程序时,通常会遇到此错误消息。由于LabVIEW将每个数据集存储在一个连续的内存块中,因此计算机上可用的内存块可能无法满足存储要求。 以下是一些有助于防止出现此错误消息的建议: 减少数组,簇和波形使用的内存 如果有一个大型数组,请尽可能使用较小的数据类型来表示数组中的元素。例如,如果数组中的元素用双精度浮点数(DBL)表示,但可能的期望值范围是0到100之间的整数,则可以更改数组中的数据类型为无符号8位整数(U8)。 U8这种数据类型占用内存为DBL数据类型占用内存的八分之一。 在LabVIEW 8.5及更高版本中,使用 放置元素结构(In Place Element Structure),来避免使用数组,簇或波形的副本。 如果要绘制来自大型数组的数据波形,请使用最大值最小值抽取(max-min decimation)来避免绘制每个数据点的波形。 使用配置文件性能和内存工具帮助缩小范围并确定哪些VI与内存的使用相关 。 分析大型数据集以确定内存已满的位置。采用数据流式传输或向磁盘中写入数据时,使用高性能的分析和报告工具,如TDMS文件和NI DIAdem软件。 少应用程序中的内存使用量 要限制LabVIEW复制数据的次数,请减少应用程序中的全局变量和局部变量的数量。避免使用变量,而应考虑使用生产者/消费者设计模式 或新数据参考值函数来创建对数据的引用。 将大型VI拆分成若干子VI,并使用“按引用节点调用”动态调用子VI。在VI动态调用子VI之前,子VI不在内存中。 尽可能将大型子VI设置为不可重入VI 。非重入是Windows和Real-Time VI的默认设置。 使用NI LabVIEW桌面执行跟踪工具包来识别可能影响性能的问题,例如内存泄漏和参考泄漏。该工具包还可以收集底层信息,如调用链,线程ID和定位虚拟内存,以及配置文件VI,可执行文件和共享库等。 增加LabVIEW内存 增加系统的虚拟内存。 注意LabVIEW可以分配的内存量取决于所使用的LabVIEW软件和操作系统的位数。 考虑使用64位的LabVIEW ,它允许更多的内存使用,但不支持LabVIEW 32位的所有模块,工具包和驱动程序。 LabVIEW 32位与64位应用程序常见问题解答中列出了以上差异。 闭LabVIEW中的引用 当您打开应用程序,项目,VI或其他参考源的引用时,LabVIEW会分配内存来存储该引用。要释放LabVIEW存储参考源的内存空间,必须关闭引用。您可以在LabVIEW中关闭引用阅读更多有关信息。 相关信息 如果LabVIEW无法为阵列分配足够大的内存块,则此错误消息最常见。例如,大小为2,000乘2,000个元素的双精度浮点数的2D数组使用大约32 MB。即使32 MB的内存可用,您也可能没有足够大的连续内存块用于阵列。 当包含多于2 ^ 31个元素的数组用于索引For循环时,也会生成此消息。数组最多可包含2 ^ 32个元素,但For循环最多只能索引2 ^ 31个值。这是因为N终端使用带符号的32位整数(I32)数据类型而不是无符号32位整数(U32)数据类型。 I32数据类型的最高有效位用于指定值是正还是负。 请参考附件的例程。 |
|
|
|
用udl里的字符串信息在局域网内其他电脑连接sql数据库为什么为出现连接失败拒绝访问?
1721 浏览 2 评论
为什么同一个队列引用的全局变量,运行在两个子vi中发现队列数据丢失了
1320 浏览 0 评论
1537 浏览 0 评论
关于labview2024版本的lvanlys.dll出错的问题
3074 浏览 3 评论
1462 浏览 2 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 16:51 , Processed in 0.378487 second(s), Total 38, Slave 30 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号