1

Sun JVMでは、クラスローダーによってロードされるクラスはpermgenスペースに配置され、gcされることはありません。(クラスローダーがスコープ外にならない限り)JRockitが代わりに同じデータをヒープに置くことは私の理解です。そのデータはガベージコレクションの対象になりますか?

ありがとう。

4

2 に答える 2

2

この問題は、クラスが割り当てられる場所とは何の関係もありません。問題は、クラスローダーが常にクラスへの参照を保持することです。つまり、クラスローダーがガベージコレクションを取得しない限り、クラスをガベージコレクションすることはできません。

PermGenメモリは不足していて高価であるため、この問題はHotSpotでより明白になります。

于 2010-04-06T17:57:58.387 に答える
0

ただし、もう1つの重要な点は、PermGenはSunで使い果たされることが多く、他のJVMが別のそれほど制限されていないスペースに割り当てる可能性があることです。

于 2010-04-23T22:02:07.203 に答える