Tôi đã viết một widget WPF nhỏ sử dụng C# hiển thị hoạt động CPU hiện tại, RAM được sử dụng và hoạt động đĩa dưới dạng ba thanh loại phần trăm nhỏ. Tôi đã sử dụng các PerformanceCounters sau cho việc này: (diskCounter PerformanceCounter trả về tổng số hoạt động đĩa hiện theo byte mỗi giây)Xác định tốc độ truyền dữ liệu ổ cứng tối đa của máy tính theo lập trình với C#
private void InitialisePerformanceCounters()
{
cpuCounter = new PerformanceCounter("Processor", "% Processor Time", "_Total", true);
totalRam = (int)(new Microsoft.VisualBasic.Devices.ComputerInfo().TotalPhysicalMemory/1024/1024);
ramCounter = new PerformanceCounter("Memory", "Available MBytes");
diskCounter = new PerformanceCounter("PhysicalDisk", "Disk Bytes/sec", "_Total", true);
}
Vấn đề là mặc dù tôi đã khám phá ra làm thế nào để có được tổng RAM có sẵn để tính toán một tỷ lệ phần trăm đã qua sử dụng từ , Tôi không thể tìm hiểu cách đọc tốc độ truyền dữ liệu tối đa 'lý thuyết' của đĩa. Tôi cần điều này để tính tỷ lệ phần trăm tốc độ truyền đĩa được sử dụng. Bất kỳ trợ giúp nào sẽ được đánh giá cao.
bạn sẽ tìm thấy mức giá tối đa có thể như thế nào? AFAIK này phụ thuộc vào vị trí hiện tại của HD, do đó, điều này sẽ nhiều hơn hoặc ít hơn cung cấp cho bạn một kết quả sai, hay không? – InsertNickHere
@InsertNickHere: Cách duy nhất để đo lường tốc độ tối đa có thể là ghi vào toàn bộ đĩa và đo theo khoảng thời gian. Bạn chính xác ở chỗ điều này phụ thuộc vào một số yếu tố, nhưng điều này sẽ cung cấp cho ít nhất một xấp xỉ có thể sử dụng. –
Cảm ơn Adam, nhưng tôi không cần bất cứ điều gì chính xác ... tỷ lệ tối đa lý thuyết được đề xuất bởi Jonathan là tốt. – Sheridan