我正进入(状态OutOfMemoryException
在 J2ME 应用程序中。
我怎样才能找到导致此错误的原因?以及如何防止出现此错误?
我发出一个http请求。当请求未完成时,屏幕会显示加载图像(就像浏览器在加载页面时显示的那样)。这是通过创建图像并重新绘制屏幕来完成的。
创建图像 1 -> 重新绘制 -> 创建图像 2-> 重新绘制 -> 创建图像 3 -> 重新绘制 -> 创建图像 1-> 重新绘制 -> 。
我注意到(使用 wtk 内存监视器)这消耗了太多未被垃圾收集的内存。
然后我尝试创建一个类似图像池的类。此类创建所有图像,然后显示它们。
创建图像 1 -> 创建图像 2-> 创建图像 3 -> 重绘 -> 重绘 -> 重绘 -> 重绘 -> 重绘 -> 。
第二种情况似乎没有第一种情况消耗那么多内存。 (使用 wtk 内存监视器)。
但是,我认为(不确定是否是这样)这两种方法都会导致这种情况OutOfMemoryException
.
错误的原因是内存不足。很抱歉声明显而易见的事情,但您问了:-)
需要一些源代码才能诊断确切的问题。
您还应该查找代码中进行递归方法调用或在循环内分配内存的部分。递归调用通常会生成 StackOverflowException,但值得一看。不过,在循环内分配内存很快就会导致 OutOfMemoryError。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)