OOM都有哪些,说出几种?

2021-03-07 23:10发布

10条回答
霸王龙的龙
2021-03-08 09:58

Key TakeAways

  1. StackOverflowError: 调用栈过深,导致线程栈占用大小超过-Xss(或者是-XX:ThreadStackSize)的限制

  2. OutOfMemoryError: Java heap space:堆内存不够用,无法分配更多内存,就会抛出这个异常。

  3. OutOfMemoryError: unable to create native thread:这个在创建太多的线程,超过系统配置的极限。如Linux默认允许单个进程可以创建的线程数是1024个。

  4. OutOfMemoryError: GC Overhead limit exceeded:默认情况下,并不是等堆内存耗尽,才会报 OutOfMemoryError,而是如果 JVM 觉得 GC 效率不高,也会报这个错误。

  5. OutOfMemoryError: direct memory:这个是向系统申请直接内存时,如果系统可用内存不足,就会抛出这个异常

  6. OutOfMemoryError: map failed:这个是 File MMAP(文件映射内存)时,如果系统内存不足,就会抛出这个异常

  7. OutOfMemoryError: Requested array size exceeds VM limit:当申请的数组大小超过堆内存限制,就会抛出这个异常。

  8. OutOfMemoryError: Metaspace:Metadata 占用空间超限

  9. OutOfMemoryError: Compressed class space:class space 内存溢出导致的

  10. OutOfMemoryError: reason stack_trace_with_native_method:这个发生在 JNI 调用中,内存不足


一周热门 更多>