uncttm 发表于 2009-8-21 10:56:40

内存占用及释放的问题?

最近在做AD触发采集后进行数据处理分析的程序。
程序运行一段时间后提示“虚拟内存不足”,查找原因后发现有两个vi运行后并没有释放内存。
在论坛翻了翻帖子,基本上都是采用“动态调用”的方式运行vi,说是这样在结束vi时能够自动释放内存。
本想按照这个方法试试,发现了“请求释放内存”(如附件图)这个vi,看了看帮助内容为“将“请求释放”函数置于需要释放内存的子VI中。将标志布尔输入设置为TRUE,则LabVIEW将释放该子VI的数据空间令内存使用降低。”试验后发现确实有一定的效果,感觉实现起来比较方便。
问题是:
1、这样用有什么隐患吗?(只在两个大的vi里使用了,没有频繁“请求释放”)
2、这样用与动态调用各自的优缺点是什么?

我理解这样用介于动态调用和直接调用之间,
性能上:1、vi一直在内存中,避免反复载入;2、内存占用上能够释放一些内存。
不知道理解的对吗?
请指教!
(另外:发现很多帖子都在提出“内存占用”“虚拟内存不足”的帖子,但是真正有效的解决方法并没有人总结成贴,可能是产生原因各有不同吧。但是查找问题的方法应该可以总结出来吧!)

老头子 发表于 2009-8-22 10:00:56

估计是垃圾内存自动回收,如果是这个道理,就不存在隐患,最好测试几次,运行一段时间看是否存在不稳定
页: [1]
查看完整版本: 内存占用及释放的问题?