如何破解内存不足的魔咒

2019-07-17 20:16发布

如图所示的程序,运行一段时间后就会提示内存不足了,有什么解决办法?
我的设想是可以连续记录的,最好是能够实时显示曲线并保存在文件中,但同时又可以利用Graph的优势:查看历史记录、缩放波形。
6.png
7.png
8.png
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
12条回答
krize
2019-07-19 01:01
Bittern 发表于 2017-1-9 08:31
现在的电脑都是多核的了,用while没事。

电脑有100个核用while循环不停下来的话也吃不消这内存占用啊,而且while循环输出的数组大小预先是不知道的,这就导致每循环一次内存里都需要不停地开辟地址连续的合适大小的空间来存放输出数组,运行到后来不止占用的内存多,而且程序也会执行得很慢 。别人建议用for循环是有道理的,第一,for循环设置的循环次数再多也有个上限,占用的内存也是确定的,第二,使用for循环程序会预先分配好内存空间,不会每循环一次都要再分配一次。
while循环生成数组这种方式除非自己事先确定不会执行太多次,否则绝对不要使用。

一周热门 更多>