2009-03-12 15 views
5

Her bir çekirdeğin ne kadar kullanıldığını ve belirli bir işlemin ne kadar toplam CPU kullandığını görebileceğiniz perfmonda biliyorum. Ancak, bir işlemin ne kadar CPU kullandığını görmenin bir yolu bulamıyorum.Bir işlemin çekirdek başına ne kadar CPU kullanımını kullandığını görmenin bir yolu var mı?

Bu bilgileri görmenin yerleşik bir yolu var mı? Bunu görmenin programlı bir yolu var mı? (C# tercih edilir) Windows (Vista) 'nın bu soruyu sorarak temel kullanım ve içerik değişimini nasıl ele aldığının yanlış anlaşıldığını mı gösteriyorum?

Düzenleme: Ne öğrenmek istediğimin daha fazla açıklığa kavuşturulması. Benim süreç sadece% 30-40 toplam CPU (dört çekirdekli) kullanıyor mu, çünkü daha fazla kullanmak için yeterince çok iş parçacıklı değil ya da çok I/O bağlı ve disk erişim darboğaz olduğu için mi?

Bunu yapmak için hiçbir yolu yok mu? (bilgisayarda başka bir CPU etkinliği olmadığından emin olun)

cevap

1

İşlem Gezgini, en azından belirli bir işlemin iş parçacığını ve bunların ne kadar CPU kullandığını gösterebilir. Belki iş parçacığı üzerinde çalıştığı çekirdek/cpu alabilir ve sonra sadece ekleyin. Yine de çok fazla WinAPI deneyimim yok. Yani işlemci çekiciliği sadece süreçler üzerinde sorgulanabilir.

2

doğrudan belirli bir süreç için başına processer döngü sürelerini alamayan, ancak QueryIdleProcessorCycleTime ile zamanla bunu tahmin edebilir (tüm mantıksal işlemciler boşta kez döndürür olarak, yani çekirdekler) ve QueryProcessCycleTime ve varsayarak çalışan sadece boşta çalışan işlemdir.

+0

lol, işlemcinin Vista'da çalışırken boşta kalan tek işlem olmamasını sağlamak zor, çok fazla arka plan gürültüsü – Davy8

İlgili konular