ตัวอย่างที่มีประโยชน์:
การตั้งค่า-XX:+CMSPermGenSweepingEnabled -XX:+CMSClassUnloadingEnabled
บน Weblogic ของเรา 10.3 JVM ช่วยแก้ไขปัญหาที่การติดตั้ง JAX-WS สร้างคลาสพร็อกซีใหม่สำหรับทุกการเรียกใช้บริการเว็บในที่สุดนำไปสู่ข้อผิดพลาดของหน่วยความจำ
มันไม่สำคัญที่จะติดตาม รหัสต่อไปนี้จะส่งคืนคลาสพร็อกซีเดียวกันเสมอport
final MyPortType port =
Service.create(
getClass().getResource("/path/to.wsdl"),
new QName("http://www.example.com", "MyService"))
.getPort(
new QName("http://www.example.com", "MyPortType"),
MyPortType.class);
ภายในพร็อกซีนี้ได้มอบหมายให้กับอินสแตนซ์ของweblogic.wsee.jaxws.spi.ClientInstance
ซึ่งได้มอบหมายให้$Proxy[nnnn]
คลาสใหม่อีกครั้งซึ่งn
เพิ่มขึ้นทุกครั้งที่โทร เมื่อเพิ่มแฟล็กn
ยังคงเพิ่มขึ้น แต่อย่างน้อยคลาสชั่วคราวเหล่านั้นจะถูกลบออกจากหน่วยความจำ
ในหมายเหตุทั่วไปนี้มีประโยชน์มากเมื่อใช้การสะท้อน Java และพร็อกซีอย่างหนัก java.lang.reflect.Proxy
CMSClassUnloadingEnabled
ให้มีผลกระทบใด ๆUseConcMarkSweepGC
ก็จะต้องตั้ง