2010-09-24 14 views

cevap

-1

Aradığın, bir profiler gibi görünüyor. (örneğin jProfiler veya açık kaynak için: http://java-source.net/open-source/profilers)

+0

Teşekkürler, jprofiler – alex543

+2

içinde bu seçeneği bulamıyorum perm gen uzayı keşfetmek için bir seçenek olan herhangi bir profiler işaret edebilir misiniz. Öğrendiğim kadarıyla, çoğu sadece izinsiz gen alanını değil, yığını keşfeder. Windows'ta –

10

Belki de büyük bir kod tabanınız var veya çok sayıda dizge içeriyorsunuz.

jmap deneyin:

jmap -permstat <pid> 

(Not: permstat seçenek Windows mevcut değildir)

Örnek:

$ jmap -permstat 22982 
Attaching to process ID 22982, please wait... 
Debugger attached successfully. 
Server compiler detected. 
JVM version is 17.0-b16 
100691 intern Strings occupying 5641096 bytes. 
finding class loader instances ..Finding object size using Printezis bits and skipping over... 
done. 
computing per loader stat ..done. 
please wait.. computing liveness..done. 
class_loader classes bytes parent_loader alive? type 

<bootstrap>  303  1355992 null   live <internal> 
0xdd159fe8  9  94104 0xdd153c30  live sun/misc/[email protected] 
0xdd153c30  0  0   null   live sun/misc/[email protected] 

total = 3  312  1450096  N/A   alive=3, dead=0  N/A 

Ayrıca bir dosyaya yığın damping deneyebilirsiniz ve daha sonra Sızıntı Şüpheli Raporu ve Dominator Ağacı gibi yararlı bilgiler verecek olan Eclipse Memory Analyser'a yükleniyor.

jmap -dump:format=b,file=heap.bin 22982 

Gerekirse, -XX:MaxPermSize JVM seçeneğini kullanarak PermGen alanını artırabilir.

+1

'permstat' seçeneği artık mevcut. java sürümü "1.6.0_31" Java (TM) SE Çalıştırma Ortamı (derleme 1.6.0_31-b05) Java HotSpot (TM) 64-Bit Sunucu VM (yapı 20.6-b01, karışık mod) – Sydney

İlgili konular