使用.net 2.0中的秒表-stopwatch类进行硬盘速度测试
最近在写一个软件要求测试USB硬盘的读写速度,之前我一直知道的都是在高级语言中只可以精确到MS,在网上找了一下,看到介绍C#中用于表示更精确的时间类.以下是网上摘来的介绍
Stopwatch类:
使用Stopwatch类来量度时间非常简单。跟现实生活中的秒表一样,这个类的对象也能够对计数器进行开始、停止、归零(重置)操作,不过它可比一般的秒表精确多了,它能够精确到微秒(也就是百万分之一秒).
使用Stopwatch类需要加入
using System.Diagnostics;
以下是在实际应用中的一段代码,实际测试出来的速度与HD Speed测试出来的速度相关不大(读写USB2.0硬盘时),但是测试USB3.0硬盘时,速度相关比较大,不知道什么原因.
/// 读取一定数量字节所要的时间 /// 返回ms值 public double SectorReadTime(int mb) { int SectorCount = mb * 1024 * 1024; _DirverStream.Position = 0; // 从0扇区开始读取 byte[] ReadByte= new byte[SectorCount]; Stopwatch timer = new Stopwatch(); timer.Start(); _DirverStream.Read(ReadByte, 0, SectorCount); timer.Stop(); // 返回时间,可以精确到纳秒 return timer.Elapsed.TotalMilliseconds; }