android OOM原因有哪些
来源:互联网 发布:高中封闭式管理 知乎 编辑:程序博客网 时间:2024/04/29 23:56
One common issue that many developers have to address is that of applications that terminate with
java.lang.OutOfMemoryError. That error is thrown when there is insufficient space to allocate an
object. That is, garbage collection cannot make any further space available to accommodate a new object, and
the heap cannot be further expanded. An OutOfMemoryError does not necessarily imply a memory leak. The
issue might simply be a configuration issue, for example if the specified heap size (or the default size if not
specified) is insufficient for the application.
The first step in diagnosing an OutOfMemoryError is to examine the full error message. In the exception
message, further information is supplied after “java.lang.OutOfMemoryError”. Here are some common
examples of what that additional information may be, what it may mean, and what to do about it:
Java heap space
This indicates that an object could not be allocated in the heap. The issue may be just a configuration
problem. You could get this error, for example, if the maximum heap size specified by the –Xmx
command line option (or selected by default) is insufficient for the application. It could also be an
indication that objects that are no longer needed cannot be garbage collected because the
application is unintentionally holding references to them. The HAT tool (see Section 7) can be used to
view all reachable objects and understand which references are keeping each one alive. One other
potential source of this error could be the excessive use of finalizers by the application such that the
thread to invoke the finalizers cannot keep up with the rate of addition of finalizers to the queue. The
jconsole management tool can be used to monitor the number of objects that are pending
finalization.
16 Recommendations Sun Microsystems, Inc.
• PermGen space
This indicates that the permanent generation is full. As described earlier, that is the area of the heap
where the JVM stores its metadata. If an application loads a large number of classes, then the
permanent generation may need to be increased. You can do so by specifying the command line
option –XX:MaxPermSize=n, where n specifies the size.
• Requested array size exceeds VM limit
This indicates that the application attempted to allocate an array that is larger than the heap size. For
example, if an application tries to allocate an array of 512MB but the maximum heap size is 256MB,
then this error will be thrown. In most cases the problem is likely to be either that the heap size is too
small or that a bug results in the application attempting to create an array whose size is calculated to
be incorrectly huge.
Some of the tools described in Section 7 can be utilized to diagnose OutOfMemoryError problems. A few of
the most useful tools for this task are the Heap Analysis Tool (HAT), the jconsole management tool, and the
jmap tool with the –histo option.
- android OOM原因有哪些
- Android OOM原因总结
- Android OOM原因总结
- Android OOM原因总结
- 导致OOM异常的原因哪些?
- 重庆膀胱炎有哪些原因
- 在Android开发中,有哪些好的内存优化方式?如何避免 Out Of Memory(OOM) ?
- 在Android开发中,有哪些好的内存优化方式?如何避免 Out Of Memory(OOM) ?
- android out of memory(OOM)产生原因
- Android OOM产生原因及如何解决
- Android OOM产生原因及如何解决
- Android OOM出现常见原因及解决办法
- Android OOM出现常见原因及解决办法
- Android OOM出现常见原因及解决办法
- Android OOM产生原因及如何解决
- Android OOM的原因及解决方法
- 造成数据丢失的原因有哪些
- APP被拒绝的原因有哪些
- 25 最近遇到的一些问题汇总
- python3 爬虫入门
- HANA常用语法
- 你会写简历吗?
- ConcurrentLinkedQueue的实现
- android OOM原因有哪些
- Jquery基础DOM和css操作
- c++基础之函数
- C#梳理【类型转换的做法】
- Python 基础教程
- 《重构-改善既有代码的设计》知识精选——重构方法合集
- Python中的协程和异步编程
- 成为快乐高产的程序员的小诀窍。
- 安装