Tôi cần kiểm tra một số kịch bản giám sát JMX mà tôi đã phát triển, Đặc biệt tôi muốn xác minh rằng việc giám sát vùng PermGen của tôi đang hoạt động. Vì vậy, để kiểm tra điều này, tôi muốn có thể chạy một chút mã tải một số lượng đáng kể các lớp để tiêu thụ PermGen.Lập trình điền vùng nhớ JVM Permanent Generation (PermGen)
kế hoạch hiện tại của tôi là viết một kịch bản để tạo prefix(1..n).java
biên dịch chúng và sau đó có mặt đúng lúc chạy:
for(int i=1 ; i < n ; i ++){
Class.forName("com.mypackage.prefix"+i);
}
Có một giải pháp thanh lịch hơn để đạt được điều này?
Tôi nghĩ rằng nếu bạn tạo một ClassLoader mới và nạp cùng lớp hơn và hơn, nó sẽ đạt được mục tiêu của mình mà không cần phải tạo ra tấn của các tầng lớp khác nhau. Ngoài ra, tôi nghĩ rằng String.intern() cũng có thể điền vào không gian PermGen của bạn –
@Guillaume: đó là một câu trả lời, không phải là một bình luận! –
@Tom, có và không vì tôi không chắc chắn về điều này, vì vậy đây là một gợi ý. Tôi không muốn khẳng định điều này. ;-) –