Từ this bài:
Để có được toàn bộ PC CPU và bộ nhớ sử dụng:
using System.Diagnostics;
Sau đó, tuyên bố trên toàn cầu:
private PerformanceCounter theCPUCounter =
new PerformanceCounter("Processor", "% Processor Time", "_Total");
Sau đó, để có được thời gian CPU, đơn giản gọi phương thức NextValue()
:
this.theCPUCounter.NextValue();
Điều này sẽ giúp bạn có được sử dụng CPU
Đối với việc sử dụng bộ nhớ, điều tương tự áp dụng Tôi tin rằng:
private PerformanceCounter theMemCounter =
new PerformanceCounter("Memory", "Available MBytes");
Sau đó, để có được sử dụng bộ nhớ, chỉ cần gọi NextValue()
phương pháp:
this.theMemCounter.NextValue();
Để biết quy trình cụ thể về CPU và Sử dụng bộ nhớ:
private PerformanceCounter theCPUCounter =
new PerformanceCounter("Process", "% Processor Time",
Process.GetCurrentProcess().ProcessName);
trong đó Process.GetCurrentProcess().ProcessName
là tên quá trình bạn muốn nhận thông tin.
private PerformanceCounter theMemCounter =
new PerformanceCounter("Process", "Working Set",
Process.GetCurrentProcess().ProcessName);
nơi tên quy trình bạn muốn nhận thông tin.
Lưu ý rằng Working Set có thể không đủ theo đúng nghĩa của nó để xác định dấu vết quá trình bộ nhớ - xem What is private bytes, virtual bytes, working set?
Để lấy tất cả các hạng mục, thấy Walkthrough: Retrieving Categories and Counters
Sự khác biệt giữa Processor\% Processor Time
và Process\% Processor Time
là Processor
là từ chính PC và Process
là cho mỗi quá trình riêng lẻ. Vì vậy, thời gian xử lý của bộ vi xử lý sẽ được sử dụng trên PC. Thời gian xử lý của một quá trình sẽ là quá trình sử dụng quy định. Đối với mô tả đầy đủ tên loại: Performance Monitor Counters
Một thay thế cho việc sử dụng Counter Performance
Sử dụng System.Diagnostics.Process.TotalProcessorTime và System.Diagnostics.ProcessThread.TotalProcessorTime tính để tính toán sử dụng bộ vi xử lý của bạn như article này mô tả.
Không có một cách chính xác để đo lường sử dụng bộ nhớ. Bộ nhớ có thể được sử dụng theo nhiều cách khác nhau. Ví dụ, bạn có tính bộ nhớ hoán đổi vào đĩa hoặc bộ nhớ chỉ được dành riêng/cam kết nhưng chưa được ghi, ... – CodesInChaos