【问题标题】:Why does Permgen OutOfMemeoryError occurs?为什么会发生 Permgen OutOfMemeoryError?
【发布时间】:2013-11-21 06:24:53
【问题描述】:

直到今天,我才知道permgen空间有一些限制,当这个限制用完时,OutOfMemoryError就来了,我认为这是正确的,因为我已经看到了OutOfMemoryError Permgen空间。

但是Inside the Java Virtual Machine 引号,

方法区域的大小不需要固定。随着 Java 应用程序的运行,虚拟机可以扩展和收缩方法区域以适应应用程序的需要。

那么,当JVM可以扩展时,为什么会出现错误?扩展有限制吗?

【问题讨论】:

    标签: java jvm


    【解决方案1】:

    Method Area 是较大的PermGen 或非堆内存区域的一部分。 PermSize 设置固定了PermGen 可以使用的最大内存。由于Method AreaPermGen子部分,只要PermGen 的整体大小保持在指定限制内​​,它就可以根据需要扩展。

    那一刻,PermGen 空间要求超出了指定的限制,(比如因为扩展了Method Area),OutOfMemoryError 被抛出。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-23
    • 2013-02-17
    • 1970-01-01
    • 1970-01-01
    • 2017-07-20
    • 2017-09-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多