Benchmark disku
DiskBenchmark otestuje rýchlosť čítania a zápisu na nami zvolené zariadenie. Program umožňuje nastaviť počet pokusov pre zvýšenie presnosti.
Zdrojový kód
Testovacia logika je v triede DiskTester, oddelená od GUI. Testovanie disku prebieha samozrejme na pozadí cez BackgroundWorker, aby okno programu zostalo responzívne. Problém pri práci s IO je ten, že štandardne sa využívajú systémové vyrovnávajúce pamäte. Na vypnutie bufferovania a cachovania slúži príznak
const FileOptions FileFlagNoBuffering = (FileOptions) 0x20000000;
ktorý sa potom využíva pri otváraní súboru
using (FileStream fs = new FileStream(path, FileMode.OpenOrCreate, FileAccess.Write, FileShare.None, 8, FileFlagNoBuffering)) { sw.Start(); // Stopwatch fs.Write(values, 0, Size); sw.Stop(); }
Výsledok merania program vráti delegát TestCompletedDelegate(float read, float write), ktorý vráti priemerný počet milisekúnd stráveným čítaním a zápisom. Relatívny progres je reportovaný prostredníctvom IProgress<float>, ktorý priamo mení hodnotu ProgressBar-u.
Galerie
Stáhnout
Stažením následujícího souboru souhlasíš s licenčními podmínkami
Staženo 70x (22.89 kB)
Aplikace je včetně zdrojových kódů v jazyce C#