使用.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;
        }
posted @ 2009-12-30 09:13  OpenUSB  阅读(331)  评论(0编辑  收藏  举报