2014-06-05 25 views
12

DTrace ve Linux perf_events gibi sistem profilleyicileri, JVM'den yığın izlerini görüntüleyebilir. Şimdi, semboller bir kenara (bu başka bir sorun), hem DTrace hem de perf_events sadece 1 kare olan çok sayıda yığın toplar. Bunlar kısmi, eksik yığınlardır.Java yığın çerçevesi optimizasyonlarını veya sistem oluşturucularını kullanarak profil yığınlarını nasıl devre dışı bırakırım?

DTrace jstack() ve Linux perf_events öğelerini hem çerçeve işaretçisi hem de cüce yığını açma ile denedim.

Bunun, hotspot'un optimize edilmiş çerçeveler oluşturmasından kaynaklandığına inanıyorum. Bu optimizasyonu devre dışı bırakmanın bir yolu var, böylece standart sistem profilleyicileri (Solaris DTrace ve Linux perf gibi) çalışıyor mu? Bu JVM sorundur ve + ShowHiddenFrames

cevap

6

: XX: + DeoptimizeRandom XX: MaxInlineSize = 0 XX: -OmitStackTraceInFastThrow XX: + UnlockDiagnosticVMOptions XX

Zaten aşağıdaki seçenekleri denedim en iyi böcek ile tarif edilir:

https://bugs.openjdk.java.net/browse/JDK-6276264

bu DTrace jstack() ile sorun açıklanmış olsa da, (a kaydı olarak çerçeve işaretçisini kullanılarak) aynı optimizasyon kırma perf_events olduğuna inanıyoruz.

Bu

JDK 9. See sabit edilebilir: Bu cevaplanması için hotspot geliştiriciler için

http://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/2014-June/014842.html

teşekkür ederiz.

İlgili konular