2013-03-06 7 views
8

JNI aracılığıyla yerel C kodunu çağıran bir Java kodu parçasını analiz etmek için JProfiler'i kullanıyorum ve "CPU Görünümleri" penceresinden garip sonuçlar alıyorum. Özellikle, "Çağrı Ağacı" sekmesindeki bilgiler bana, yerel kodu çağıran Java yönteminin çalışma zamanının en yüksek kısmını tükettiğini söylüyor, ancak "Sıcak Noktalar" sekmesi bu yöntemi bile listelemiyor. Ayrıca, CPU'nun oldukça büyük bir kısmına sahip olduğu bildirilen ancak sıcak noktalar olarak bildirilmeyen org.joda.time sınıfları için de benzer bir hikaye farkettim ve bunun çok fazla zaman harcadığını merak ediyorum. yerel tarih dönüştürme kodu. Bu soruna yönelik herhangi bir fikir takdir edilecektir.jprofiler "Hot Spot" görünümü, JNI aracılığıyla adlandırılan yerel kod tarafından tüketilen CPU'yu doğru bir şekilde hesaba katıyor mu?

DÜZENLEME: "Java Profilcilerinin Doğruluğunu Değerlendirme" başlıklı çok rahatsız edici bir akademik makale keşfettim (bir bağlantı sağlayacağım, ancak bu dosyanın Google sonucu tarafından başvurulan Colorado Üniversitesi sunucusu çok mutsuz bir haktır) şimdi, bir kopyasını Google'ın "Hızlı Görünüm" bağlantısından aşağı çekmek zorunda kaldım). Yerel yöntemlerle ilgili sorunun, fazla sayım yapıldığından şüphe ettiğimi, çünkü çok sayıda çağrı olduğunu, kısa olduklarını ve çağrının bir akma noktasıyla sonuçlanacağını sanıyorum; Ancak, aynı zaman dönüşüm rutinleri için geçerli olup olmadığından emin değilim. Aynı test çalışması için enstrümantasyonlu profilleme ve örneklenmiş profiller kullanılırken önemli ölçüde farklı sonuçlar aldığımı ve enstrümanlı sonuçların sezgilerimle daha iyi anlaştığını unutmayın. Kağıdın, bir profil oluşturma çalışmasının sonuçları üzerinde kafalarını kaşıdığını bulduğu herkese öneririm. Yine de bunun hakkında daha fazla bilgi sahibi olmasını umuyor; "profiler yanlış" çok rahatlatıcı bir sonuç değil.

DÜZENLEME 2: Burada, colorado.edu kendisini dizildi Görünüşe link: http://www-plan.cs.colorado.edu/klipto/mytkowicz-pldi10.pdf

cevap

2

sıcak noktalar büyük doğal zamanla gösterileri yöntemlerini görüntülemek. Çağrı ağacı görünümünde, arama ağacının en üstünde toplam toplam süreye sahip yöntemleri görürsünüz. Bu yöntemler genellikle sıcak noktalar değildir.

"İçsel süre" olarak nitelendirilen, filtrelerinizin nasıl yapılandırıldığına bağlıdır.

Ayrıntılı bir açıklama için lütfen this help topic'a bakın.