it-swarm-id.com

Melacak penggunaan CPU dan Memori per proses

Saya menduga bahwa salah satu aplikasi saya memakan lebih banyak siklus CPU daripada yang saya inginkan. Masalahnya adalah - itu terjadi dalam semburan, dan hanya melihat task manager tidak membantu saya karena hanya menunjukkan penggunaan langsung.

Apakah ada cara (pada Windows) untuk melacak sejarah penggunaan CPU & Memori untuk beberapa proses. Misalnya. Saya akan mulai melacak "firefox", dan setelah satu jam atau lebih akan melihat grafik penggunaan CPU & memorinya selama jam tersebut.

Saya mencari alat yang siap pakai atau cara terprogram untuk mencapai ini.

147
Eli Bendersky

Ketikkan perfmon ke Start > Run dan tekan enter. Ketika jendela Kinerja terbuka, klik tanda + untuk menambahkan penghitung baru ke grafik. Penghitung adalah aspek yang berbeda tentang cara kerja PC Anda dan dikelompokkan berdasarkan kesamaan ke dalam kelompok yang disebut "Objek Kinerja".

Untuk pertanyaan Anda, Anda dapat memilih objek kinerja "Proses", "Memori" dan "Prosesor". Anda kemudian dapat melihat penghitung ini secara real time

Anda juga dapat menentukan utilitas untuk menyimpan data kinerja untuk inspeksi Anda nanti. Untuk melakukan ini, pilih "Log Kinerja dan Peringatan" di panel sebelah kiri. (Tepat di bawah konsol Monitor Sistem yang memberi kami penghitung yang disebutkan di atas. Jika tidak ada di sana, klik "File"> "Add/remove snap-in", klik Tambah dan pilih "Log Kinerja dan Peringatan" dalam daftar ".) Dari" Log Kinerja dan Peringatan ", buat konfigurasi pemantauan baru di bawah" Log Penghitung ". Kemudian Anda dapat menambahkan penghitung, tentukan laju pengambilan sampel, format log (teks biner atau teks biasa) dan lokasi log.

156
Martin08

Process Explorer dapat menampilkan total waktu CPU yang diambil oleh suatu proses, serta grafik riwayat per proses.

40
Niall

Menggunakan perfmon.exe, saya telah mencoba menggunakan penghitung "Private Bytes" di bawah penghitung "Proses" untuk melacak penggunaan memori dan ia bekerja dengan baik.

15
CppNoob

mungkin Anda bisa menggunakan ini. Ini akan bekerja untuk Anda dan akan melaporkan waktu prosesor untuk proses yang ditentukan.

@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

Saya setuju, perfmon.exe memungkinkan Anda untuk menambahkan penghitung (klik kanan pada panel kanan) untuk setiap proses yang ingin Anda pantau.

Objek Kinerja: Proses Periksa "Pilih instance dari daftar" dan pilih firefox.

7
Ady Romantika

WMI adalah Instrumentasi Manajemen Windows, dan ini dibangun ke dalam semua versi Windows terbaru. Hal ini memungkinkan Anda untuk melacak secara terprogram hal-hal seperti penggunaan CPU, disk I/O, dan penggunaan memori.

Perfmon.exe adalah antarmuka GUI untuk antarmuka ini, dan dapat memonitor suatu proses, menulis informasi ke log, dan memungkinkan Anda untuk menganalisis log setelah faktanya. Ini bukan program yang paling elegan di dunia, tapi itu menyelesaikan pekerjaan. 

6
doflynn

Process Lasso dirancang lebih untuk otomatisasi proses dan optimasi kelas prioritas, bukan grafik. Yang mengatakan, itu tidak menawarkan sejarah penggunaan CPU per-proses (digambar sebagai garis putih pada grafik) tetapi tidakTIDAKmenawarkan sejarah penggunaan memori per-proses. 

PENOLAKAN: Saya adalah penulis Proses Lasso, tetapi saya tidak benar-benar mendukungnya di sini - karena ada solusi yang lebih baik (perfmon menjadi yang terbaik).

Hal terbaik yang pernah ada adalah Windows Vista + Resource dan Monitor Kinerja. Itu dapat melacak penggunaan CPU, Memori, Jaringan, dan Disk mengakses dengan proses dari waktu ke waktu. Ini adalah keseluruhan utilitas sistem informasi yang hebat yang seharusnya telah dibuat sejak lama. Kecuali saya salah, ia dapat melacak CPU per-proses dan pemanfaatan memori dari waktu ke waktu (di antara hal-hal lain yang tercantum).

2
dyasta

Meskipun saya belum mencoba ini, ProcDump sepertinya solusi yang lebih baik.

Deskripsi dari situs:

ProcDump adalah utilitas baris perintah yang tujuan utamanya adalah memonitor aplikasi untuk lonjakan CPU dan menghasilkan crash dumps selama lonjakan yang dapat digunakan administrator atau pengembang untuk menentukan penyebab lonjakan. ProcDump juga mencakup pemantauan jendela gantung (menggunakan definisi jendela yang sama dengan yang digunakan Windows dan Pengelola Tugas), pemantauan pengecualian yang tidak ditangani dan dapat menghasilkan dump berdasarkan nilai dari penghitung kinerja sistem. Itu juga bisa berfungsi sebagai utilitas dump proses umum yang dapat Anda embed dalam skrip lain.

2
sean

Anda mungkin ingin melihat Process Lasso .

1
maksa

Anda juga dapat mencoba menggunakan skrip C #/Perl/Java untuk mendapatkan data pemanfaatan menggunakan Perintah WMI, dan di bawah ini adalah langkah-langkahnya.

Kita perlu mengeksekusi 2 WMI Select Queries dan menerapkan formula utilisasi CPU%

1. Untuk mengambil jumlah total proses logis 

select NumberOfLogicalProcessors from Win32_ComputerSystem

2. Untuk mengambil nilai PercentProcessorTime, TimeStamp_Sys100NS (rumus penggunaan CPU telah diterapkan, dapatkan persentase pemanfaatan aktual) dan WorkingSetPrivate (RAM) minimum 2 kali dengan interval tidur 1 detik

select * from Win32_PerfRawData_PerfProc_Process where IDProcess=1234

3. Menerapkan rumus penggunaan CPU%

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

p2 menunjukkan PercentProcessorTime diambil untuk yang kedua kalinya, dan p1 menunjukkan PercentProcessorTime yang diambil untuk pertama kalinya, t2 dan t1 untuk TimeStamp_Sys100NS.

Contoh kode Perl untuk ini dapat ditemukan di tautan http://www.craftedforeveryone.com/cpu-and-ram-utilization-of-an-application-using-Perl-via-wmi/

Logika ini berlaku untuk semua bahasa pemrograman yang mendukung kueri WMI

1
Kaarthikeyan

Hmm, saya melihat Process Explorer dapat melakukannya, walaupun grafiknya tidak terlalu nyaman. Masih mencari alternatif/cara yang lebih baik untuk melakukannya.

1
Eli Bendersky

Perfmon.exe dibangun ke dalam windows.

1
SaaS Developer

Di bawah Windows 10, Task Manager dapat menunjukkan jam CPU kumulatif Anda. Cukup buka tab "Riwayat aplikasi" dan "Hapus riwayat penggunaan". Sekarang biarkan semuanya berjalan selama satu atau dua jam:

 Windows 10 Cumulative CPU time

Apa yang BUKAN dilakukan adalah memecah penggunaan browser dengan tab. Tab yang sering tidak aktif akan melakukan banyak pekerjaan, dengan setiap tab yang terbuka menggunakan energi dan memperlambat PC Anda.

1
Bryce

Saya menggunakan taskinfo untuk grafik histori kecepatan CPU/RAM/IO . http://www.iarsn.com/taskinfo.html

Tapi semburan tidak responsif, terdengar lebih seperti waktu interupsi karena drive HD/SS palsu. 

0
Terrik