簡體   English   中英

“卸載類”消息的含義

[英]Meaning of the “Unloading class” messages

任何人都可以解釋為什么下面的行在運行時出現在輸出控制台中?

(一個可能的答案是完全permGen,但這可以排除,因為該程序僅使用PermGen中可用的max100MB中的24MB)

[卸載類sun.reflect.GeneratedSerializationConstructorAccessor28]
[卸載類sun.reflect.GeneratedSerializationConstructorAccessor14]
[卸載類sun.reflect.GeneratedSerializationConstructorAccessor4]
[卸載類sun.reflect.GeneratedMethodAccessor5]
[卸載類sun.reflect.GeneratedSerializationConstructorAccessor38]
[卸載類sun.reflect.GeneratedSerializationConstructorAccessor36]
[卸載類sun.reflect.GeneratedSerializationConstructorAccessor22]
[卸載類sun.reflect.GeneratedSerializationConstructorAccessor8]
[卸載類sun.reflect.GeneratedSerializationConstructorAccessor39]
[卸載類sun.reflect.GeneratedSerializationConstructorAccessor16]
[卸載類sun.reflect.GeneratedSerializationConstructorAccessor2]
[卸載類sun.reflect.GeneratedConstructorAccessor1]

該程序使用以下參數運行:

-Xmx160M
-XX:MaxPermSize參數= 96M
-XX:PermSize = 96M
-XX:+ UseConcMarkSweepGC
-XX:+ UseParNewGC
-XX:+ PrintGCTaskTimeStamps
-XX:+ PrintHeapAtGC
-XX:+ PrintTenuringDistribution
-XX:+ PrintGCDetails
-XX:+ PrintGCDateStamps
-XX:+ PrintGCTimeStamps
-verbose:GC
-Xloggc:/logs/gc.log

堆中和permGen中有足夠的空間。

這些類作為軟引用保存 ,始終符合GC的條件。 GC本身並不僅在達到最大內存時運行,如果你理解我的意思,它也會在有空間時運行。

順便說一下,這些類是在Serialization API的“引擎蓋”下使用的,它使用反射來訪問字段並調用方法。


更新 :關於將類卸載記錄到stdout而不是-Xloggc指定的路徑,已經出現了針對此問題的錯誤報告錯誤ID 6637203 4個月后修復了這個問題。 將JVM升級到最新版本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM