如何破解内存不足的魔咒
时间:10-02
整理:3721RD
点击:
如图所示的程序,运行一段时间后就会提示内存不足了,有什么解决办法?
我的设想是可以连续记录的,最好是能够实时显示曲线并保存在文件中,但同时又可以利用Graph的优势:查看历史记录、缩放波形。
我的设想是可以连续记录的,最好是能够实时显示曲线并保存在文件中,但同时又可以利用Graph的优势:查看历史记录、缩放波形。



while循环不停止,导致内存里的数据越来越多,最后溢出,你这个while循环没加延时的,应该很快就会溢出了。
下面这个程序给你参考,连续存储加实时显示:
您提供的方法是:利用波形图表可以连续叠加的方式,存储在硬盘中的波形文件可以连续叠加吗?
必须可以,我给你图里就是连续存储的。
用波形图表,只能显示一屏呢,历史波形看不到哦。
怎么可能...波形图表带历史功能的,波形图才是只能显示一屏,你手动调一下X轴就能看到了,如果想多显示点,在波形图表上鼠标点右键->历史长度。
有清除历史数据的属性节点,过一段时间清除一下
好歹你给循环加个延时
while循环这种用法吓死我了。改成for吧!
现在的电脑都是多核的了,用while没事。
电脑有100个核用while循环不停下来的话也吃不消这内存占用啊,而且while循环输出的数组大小预先是不知道的,这就导致每循环一次内存里都需要不停地开辟地址连续的合适大小的空间来存放输出数组,运行到后来不止占用的内存多,而且程序也会执行得很慢 。别人建议用for循环是有道理的,第一,for循环设置的循环次数再多也有个上限,占用的内存也是确定的,第二,使用for循环程序会预先分配好内存空间,不会每循环一次都要再分配一次。
while循环生成数组这种方式除非自己事先确定不会执行太多次,否则绝对不要使用。
您提供的方法存储的数据,如何重新调出来以波形来显示?
现在的多核PC貌似不用考虑完全占用CPU的问题了吧?
