2011-05-08 30 views
6

neden ben JProfiler ve YourKit hem kodumu profilli. Ancak, yüksek CPU yükünden hangi kod parçasının sorumlu olduğunu tespit edemedim.Java profilleme: algılamak kod parçası yüksek CPU yükü

O tepki süresi kötüyse sıcak noktaları tespit etmek için Önemsiz. Benim durumumda yanıt süresi bir sorun değil. Bu özel talep işlendikten kısa bir süre sonra CPU yükünün gerçekten yüksek (şaşırtıcı derecede yüksek) olması.

Hangi sınıfların/yöntemlerin buna neden olduğunu nasıl belirleyebilirim? Sanırım aradığım şey, ne kadar çok işlemci döngüsünün gerekli bir yöntemin işlenmesini istediğini gösteren bir liste.

+1

Yöntem noktaları olacaktır. Bu sonuca inanmamanın bir sebebi var mı? Bir istek gerçekleştirilirken, CPU'nun% 100 (veya en az bir tam çekirdek) olmasını beklemez miydiniz? –

+0

Evet, tabiki haklısın. İşlemci çevrimleri sayısının ölçülmesi ve uygulama süresinin ölçülmesi gibi doğrudan ilişkilidir [uygulama süresi = (döngü sayısı * döngü başına zamanı) + I/O bekleme ve benzerleri]. –

cevap

5

CPU yükü, cpu'nun sanal baş parmaklarını yalnızca açmak yerine bir şeyler yapması gereken işlemci döngü sayısını belirtir.

İsteğiniz gerçekte gerçekten çalışıyorsa (disk G/Ç'yi beklemek yerine), iş birimin cpu yapması gereken bir şey olduğunda, yükün yüksek olması beklenir.

Aramanız gereken şey, yanıt süreleri tırmanmaya başladığında olduğu gibi cpu döngüleri tükeniyor.

Sorununuz burada, sorgunun çok kısa bir sürede görmeniz gerekip gerekmediğini görmeniz gerekiyorsa, yüzlerce binlerce isteği işlemek için otomatik bir araç kullanmayı düşünün. Bu yardımcı olmalı. Bu işlem sürerken

+1

"Sanal Başparmak Sadece Twiddling" yerine +1 – Eugene

1

, bu% 100 var. Beklerken (örneğin G/Ç için)% 0'dır. Arada bir şey yok. Bir işlem% 100'den daha düşük olmadığı zaman , bu son N milisaniye boyunca sürekli ortalamasıdır.

Bunu daha verimli hale getirmenin bir yolu varsa, bu daha az zaman harcayarak, daha az zaman harcayacak (zorunlu olarak).

Daha az zaman almasını sağlamak için bir yol bulmak istiyorsanız, yeterli iş yükü ve try this verin. Ben olmazdı nerede

İlgili konular