OutOfMemoryError: PermGen space,解決辦法

分析原因:java內存大體分爲年輕代、年老代、永久代,PermGen space即是永久代,其中年輕代存放生命期較短的對象實例,GC頻率高,年老代存放生命期較長的對象實例,GC頻低,永久代存放元數據信息(如類的字節碼),理論上無GC。

測試:我使用CXF的動態Client來調用WebService,經過測試發現CXF的WebService動態調用,每次創建Client時,CXF會根據WSDL文檔生成代理類,類加載器會加載這些類,這些字節碼會被加載到永久代,從而導致永久代無止境擴大,因此發生永久代內存溢出。

解決辦法:初始化一次,不要每次都重新加載。

發佈了17 篇原創文章 · 獲贊 3 · 訪問量 24萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章