Ho scritto un piccolo widget WPF utilizzando C# che visualizza l'attività corrente della CPU, la RAM utilizzata e l'attività del disco come tre barre di piccolo tipo percentuale. Ho usato le seguenti PerformanceCounters per questo: (diskCounter PerformanceCounter ritorna l'attività del disco corrente totale in byte al secondo)Determinazione della velocità di trasferimento dati massima del disco rigido di un computer a livello di codice con 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);
}
Il problema è che, anche se ho scoperto come ottenere la RAM totale disponibile per calcolare una percentuale utilizzata da , Non riesco a scoprire come leggere la massima velocità di trasferimento dati "teorica" del disco. Ho bisogno di questo per calcolare la percentuale di velocità di trasferimento del disco utilizzata. Qualsiasi aiuto sarebbe molto apprezzato.
come troverai il tasso massimo possibile? AFAIK dipende dalla posizione attuale dell'HD, quindi questo ti darà più o meno un risultato sbagliato o no? – InsertNickHere
@InsertNickHere: l'unico modo per misurare la massima velocità possibile è scrivere sull'intero disco e misurare a intervalli. Hai ragione nel senso che ciò dipende da una serie di fattori, ma questo dovrebbe fornire almeno un'approssimazione utilizzabile. –
Grazie Adam, ma non ho bisogno di nulla di così accurato ... la massima velocità teorica suggerita da Jonathan va bene. – Sheridan