总是提示这个Grow heap (frag case) to 24.245MB for 698336-byte allocation
运行时间长容易出现内存溢出的问题,求大神给解决一下
1、 这里Grow heap (frag case) to 24.245MB for 698336-byte allocation表示你一直在分配一个较大的对象,占用的堆内存达到了24.245MB;
2. 为什么会出现这样的问题,是因为分配了一个byte[]数组,需要以Blob方式写入SQLite数据库,而造成的这么大的单个对象出现,这 里Android开发提醒你,这是很危险的操作,对于不同固件和低RAM配置的设备随时都有OOM的危险,如果你真的需要往SQLite存储二进制, 这里可以采用分段的方式,将某个对象拆分为1MB或更小,分更多的段来存放,中间加一层拆分数据缓存层来解决比较好;
3. 同时每次构造单个较大对象前,可以通知gc准备收集,比如在执行需要耗操作前执行System.gc(); 防止OutOfMemoryError的发生。
原因有很多种,把错误的log加上