程序刚打开的时候内存是170M左右,在采集过程中变化不大(1M或2M左右),采集完后从硬盘上把数据调出来处理,处理过程中有好几个波形图表要显示波形(显示的数据总和比一共采集到的多),内存一下就涨到230M左右,后面还有好几个数据处理步骤,运行完后内存达到320M,循环到第一步会清空历史数据,把所有显示控件全部清空,内存只会减少10M至20M,又继续连续运行多次,内存变化又不大了(只有打开程序第一次运行的时候内存变化特别大)
请问各位高手出现这种现象是什么原因,会不会运行八个小时不到就把内存占满了。
我用的是USB9234的采集卡,采集加速度,采样率是22000,采集14s,两个通道同时采集,采集边用tdms文件存到硬盘上,
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
内存泄露往往是使用了build array 或者concatenate string, 使得某个数组或字符串随着运行越来越大造成的。 当然还有可能是你调用的DLL甚至LabVIEW本身的函数产生的泄漏。 可以通过搜索build array 或者concatenate string排除一下自己程序的问题。
另外就是自己程序逻辑的问题了,很多情况下是不需要把所有数据都读进来的,可以分段处理,分段处理所需内存就会小很多。
一周热门 更多>