it-swarm-tr.com

İşlem başına CPU ve Bellek kullanımını izleme

Uygulamalarımdan birinin istediğimden daha fazla CPU döngüsü yediğinden şüpheleniyorum. Sorun şudur: patlamalarda olur ve sadece görev yöneticisine bakmak bana sadece anında kullanım gösterdiği gibi yardımcı olmaz.

Bazı işlemlerde CPU ve Bellek kullanım geçmişini izlemenin bir yolu var mı (Windows'ta). Örneğin. "Firefox" u izlemeye başlayacağım ve bir saat kadar sonra o saatte CPU ve bellek kullanımının bir grafiğini göreceğim.

Hazır bir araç ya da bunu başarmanın programatik bir yolunu arıyorum.

147
Eli Bendersky

Sadece Start > Run içine perfmon yazın ve enter tuşuna basın. Performans penceresi açıldığında, grafiğe yeni sayaçlar eklemek için + işaretini tıklayın. Sayaçlar, PC'nizin nasıl çalıştığının farklı yönleridir ve "Performans Nesnesi" adı verilen gruplara benzer şekilde gruplandırılmıştır.

Sorularınız için "İşlem", "Bellek" ve "İşlemci" performans nesnelerini seçebilirsiniz. Daha sonra bu sayaçları gerçek zamanlı olarak görebilirsiniz.

Daha sonra denetiminiz için performans verilerini kaydetmek için yardımcı programı da belirleyebilirsiniz. Bunu yapmak için, sol paneldeki "Performans Günlükleri ve Uyarıları" nı seçin. (Bize yukarıda belirtilen sayıcıları sağlayan Sistem Monitörü konsolunun tam altındadır. Orada değilse, "Dosya"> "Ek bileşen ekle/kaldır" ı tıklayın, Ekle'yi tıklayın ve listeden "Performans Günlükleri ve Uyarıları" nı seçin. ".)" Performans Günlükleri ve Uyarıları "ndan" Sayaç Günlükleri "altında yeni bir izleme yapılandırması oluşturun. Daha sonra sayıcıları ekleyebilirsiniz, örnekleme oranını, günlük biçimini (ikili veya düz metin) ve günlük konumunu belirtin.

156
Martin08

İşlem Gezgini , işlem başına alınan toplam CPU süresini ve işlem başına geçmiş grafiğini gösterebilir.

40
Niall

Perfmon.exe kullanarak, bellek kullanımını izlemek için "İşlem" sayaçları altındaki "Özel Bayt" sayacını kullanmayı denedim ve iyi çalışıyor.

15
CppNoob

belki bunu kullanabilirsin. Sizin için çalışması gerekir ve belirtilen işlem için işlemci zamanını bildirir.

@echo off
: Rich Kreider <[email protected]>
: report processor time for given process until process exits (could be expanded to use a PID to be more
: precise)
: Depends:  typeperf
: Usage:  foo.cmd <processname>

set process=%~1
echo Press CTRL-C To Stop...
:begin
for /f "tokens=2 delims=," %%c in ('typeperf "\Process(%process%)\%% Processor Time" -si 1 -sc 1 ^| find /V "\\"') do (
if %%~c==-1 (
goto :end
) else (
echo %%~c%%
goto begin
)
)

:end
echo Process seems to have terminated.
10
Rich Kreider

Katılıyorum, perfmon.exe izlemek istediğiniz herhangi bir işlem için sayaç eklemenizi (sağdaki panelde sağ tıklatarak) sağlar.

Performans Nesnesi: İşlem "Listeden örnekleri seç" seçeneğini işaretleyin ve firefox'u seçin.

7
Ady Romantika

WMI, Windows Yönetim Araçlarıdır ve Windows'un tüm yeni sürümlerine yerleşiktir. CPU kullanımı, disk G/Ç ve bellek kullanımı gibi şeyleri programlı olarak izlemenizi sağlar.

Perfmon.exe, bu arabirimin ön uç bir GUI'sidir ve bir işlemi izleyebilir, bir günlüğe bilgi yazabilir ve günlüğü olaydan sonra analiz etmenize izin verebilir. Bu, dünyanın en zarif programı değil, ancak işin yapılmasını sağlıyor. 

6
doflynn

Süreç Kement, grafikler için değil süreç otomasyonu ve öncelikli sınıf optimizasyonu için tasarlanmıştır. Bununla birlikte, yapar işlem başına CPU kullanım geçmişini sunar (grafikte beyaz bir çizgi olarak çizilir) ancak işlem başına bellek kullanım geçmişi sunarDEĞILsunar. 

YASAL UYARI: Ben Kement Süreci'nin yazarıyım, ama aslında burada onaylamıyorum - daha iyi çözümler olduğu için (perfmon en iyi olmak).

Şimdiye kadarki en iyi şey Windows Vista + Resource ve Performance Monitor. CPU, Bellek, Ağ ve Disk erişiminin zaman içindeki işlemlerle kullanımını izleyebilir. Uzun zaman önce yaratılmış olması gereken harika bir genel sistem bilgi aracıdır. Hatalı olmadığım sürece işlem başına CPU ve bellek kullanımını (listelenen diğer şeylerin yanı sıra) izleyebilir.

2
dyasta

Bunu denememiş olmama rağmen, ProcDump daha iyi bir çözüm gibi görünüyor.

Siteden açıklama:

ProcDump, birincil amacı CPU artışı için bir uygulamayı izleyen ve başak sırasında bir yöneticinin veya geliştiricinin başak nedenini belirlemek için kullanabileceği bir başak sırasında çökme dökümü oluşturmak olan bir komut satırı aracıdır. ProcDump ayrıca asılı pencere izleme (Windows ve Task Manager'ın kullandığı bir pencere asmının aynı tanımını kullanarak), işlenmemiş istisna izlemeyi içerir ve sistem performans sayaçlarının değerlerine dayalı dökümler üretebilir. Ayrıca, diğer komut dosyalarına gömebileceğiniz genel bir işlem dökümü aracı olarak da kullanılabilir.

2
sean

Kement İşlemi bölümüne bakmak isteyebilirsiniz.

1
maksa

Ayrıca WMI Komutlarını kullanarak kullanım verilerini almak için bir C #/Perl/Java betiği kullanmayı deneyebilirsiniz ve bunun için adımlar aşağıdadır.

2 WMI Seçme Sorgusu çalıştırmamız ve CPU% kullanım formülünü uygulamamız gerekiyor

1. Toplam mantıksal işlem sayısını almak için 

select NumberOfLogicalProcessors from Win32_ComputerSystem

2. PercentProcessorTime değerlerini almak için, TimeStamp_Sys100NS (CPU kullanım formülü uygulandı, gerçek kullanım yüzdesini alın) ve WorkingSetPrivate (RAM) en az 2 saniyelik bir uyku aralığıyla 2 kez

select * from Win32_PerfRawData_PerfProc_Process where IDProcess=1234

3. CPU% kullanım formülünü uygulayın

CPU%= ((p2-p1)/(t2-t1)*100)/NumberOfLogicalProcessors

p2, ikinci kez alınan PercentProcessorTime değerini gösterirken, p1, ilk kez alınan PercentProcessorTime değerini gösterirken, t2 ve t1, TimeStamp_Sys100NS içindir.

Bunun için örnek bir Perl kodu http://www.craftedforeveryone.com/cpu-and-ram-utilization-of-an-application-using-Perl-via-wmi/

Bu mantık, WMI sorgularını destekleyen tüm programlama dili için geçerlidir.

1
Kaarthikeyan

Hmm, görüyorum ki İşlem Gezgini bunu yapabilir, ancak grafikleri çok uygun değil. Hala bunu yapmak için alternatif/daha iyi yollar arıyorum.

1
Eli Bendersky

Perfmon.exe, pencerelere yerleştirilmiştir.

1
SaaS Developer

Windows 10 altında, Görev Yöneticisi size kümülatif CPU saatlerini gösterebilir. Sadece "Uygulama geçmişi" sekmesine ve "Kullanım geçmişini sil" e gidin. Şimdi bir ya da iki saat boyunca işleri bırak.

 Windows 10 Cumulative CPU time

Bunun yapmaması, tarayıcılarda kullanımı sekmeye göre ayırmaktır. Çoğu zaman etkin olmayan sekmeler, her bir açık sekme enerjiyi kullanarak ve bilgisayarınızı yavaşlatan çok büyük miktarda iş yapar.

1
Bryce

CPU/RAM/IO hızının tarihçesi için taskinfo kullanıyorum . http://www.iarsn.com/taskinfo.html

Ancak tepkisizlik patlamaları, sahte bir HD/SS sürücüsü nedeniyle daha çok ara verilmiş zamana benziyor. 

0
Terrik