工具软件   办公软件   操作系统   网络安全   设计在线   程序开发   教程宝典   软件下载   软件论坛
您的位置:软件 > 开发者网络 > 微软开发专栏 > Visual Studio.net专栏 > VB.net > 正文
VB.NET编写测试硬盘速度的程序
[文章信息]
作者:
时间:2004-08-16
出处:HSC梦想的天空的blog
责任编辑:方舟
[文章导读]
我们最感兴趣的是硬盘在最大负荷下持续的读取和写入速度。为了能够比较准确的测出平均速度
advertisement
热点推荐
· 在VB6中用命令行为模式控制GUI动作
· Excel图表向导详解
· 浅析各种计算机病毒应对方法
· 2月16日软件精选 春节文章精彩回顾
· 轻松玩转Excel数据图表
[正文]
  前日在用SiSoftware Sandra 2004测试硬盘性能时突发其想,用自己熟悉的VB.NET测试行不行呢?具体怎么做呢?

  我们最感兴趣的是硬盘在最大负荷下持续的读取和写入速度。为了能够比较准确的测出平均速度,我决定采用先写入一个1GB的文件再读取出来的办法。考虑到不要让更多的任务花在循环上,我首先建立起一个足够大的缓冲区,然后往磁盘写入这个缓冲的内容,从而使硬盘达到最大的负荷。考虑到Windows的读取机制,硬盘测试不太准确,此程序的读取部分只能在第一次运行时使用,运行次数越多测试也不准确,而写入测试多次运行以后依然能够保持准确性。现在就开始动手。

  在VB.NET中创建了一个控制台工程TestHarddisk,然后在Sub Main中写入下列程序。


Sub Main()

 Dim I As Int32
 Dim f As New FileStream("E:\BigFile.big", FileMode.Create)
 Dim fw As New BinaryWriter(f)
 Dim fr As New BinaryReader(f)
 Dim Size As Int32 = 1024 * 1024 * 1024 - 1 'File size = 1GB
 Dim bufSize As Int32 = 30 * 1024 * 1024 'Buffer Size = 30MB
 Dim jLast As Int32 = bufSize - 1
 Dim j As Int32
 Dim Bytes(bufSize) As Byte
 Dim StartWrite As Date = Date.Now

 Console.WriteLine("Write Start at {0}", StartWrite)
 Console.WriteLine("Creating...")

 For I = 0 To Size Step bufSize '1GB
  fw.Write(Bytes)
 Next

 Dim EndWrite As Date = Date.Now
 Dim TimePassed As TimeSpan = EndWrite.Subtract(StartWrite)
 Console.WriteLine("Write End at {0}", EndWrite)
 Console.WriteLine("Time passed:{0}", TimePassed)
 Console.WriteLine("Speed:{0}", 1000 / TimePassed.TotalSeconds)
 fw.Flush()
 Dim StartRead As Date = Date.Now
 Console.WriteLine("Read Start at {0}", StartRead)
 Console.WriteLine("Reading")

 For I = 0 To Size Step bufSize
  Bytes = fr.ReadBytes(bufSize)
 Next

 Dim EndRead As Date = Date.Now
 TimePassed = EndRead.Subtract(StartRead)

 Console.WriteLine("Read End at {0}", EndRead)
 Console.WriteLine("Time passed:{0}", TimePassed)
 Console.WriteLine("Read speed:{0}", 1000 / TimePassed.TotalSeconds)
 Console.ReadLine()
 fw.Close()

End Sub

  现在测试。

  硬件配置:

Athlon 2500+(running at 1.8G)
EPOX 8RDA3+ nForce2主板
512DDR 400(running at 400MHz)
ATA100 Seagate 7200.7 80GB 2MB

  软件配置:

Windows 2003 Server Standard Edition

  全套最新的WHQL驱动程序

  Visual Studio 2003,编译选择Realse模式,打开所有优化选项。

  第一次运行测试得写入速度43MB/s,第二次测得42MB/s,第三次41MB/s与Sisoftware测试得的结果43MB/s相差不大,达到了理想的效果。然而读取测试就变态了,第一次64MB/s,与Sissoftware测试多了5MB/s左右,第二次达到了1096MB/s,第三次1123MB/s,这和Windows的磁盘缓冲机制有关,看来作用还是蛮大的,当然,建议读取测试在重起电脑以后进行。

天极社区邀请您:写博客日记  上传相片   论坛聊天  订阅电子杂志  推荐网摘   免费图铃工具
笔名:   请您注意:

 遵守国家有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。

 天极网拥有管理笔名和留言的一切权利。
评论:
 
发表评论推荐给朋友我想参加相关培训打印我对此感兴趣订阅电子杂志
相关内容焦点新闻
  • 用VB.NET设计各种形状的窗体界面
  • 浅析VB.NET文件操作类System.IO
  • VB.NET菜单设计初级入门
  • VB.NET编程验证邮件地址的合法性
  • VB.NET中多窗体同步的解决方案
  • 国信办督战八大行业灾难备份 将出台国家标准
  • 中国IT企业走进欧盟 搭第六框架计划直通车
  • 美邦银行用户注意 警惕新型“钓鱼”邮件
  • 微软三年时间磨出新IE 具有更强大安全性能
  • 高清碟机标准打内战 HDV将状告EVD恶性竞争
  • 正版网上银行为何不安全 客户泄密银行无责任
  • 惠普铁娘子悲壮退场 未能成功扮演拯救者
  • 网上乱用人民币图样是违规行为 最高罚3万
  • Advertisement

    天极无线


    奇妙科幻|美好风光|清风车影|漫画卡通|星座生肖|明星写真|动物世界
    老鼠爱大米
    挥着翅膀的女孩
    女人味
    栀子花开
    白月光
    刚刚好
    江南
    快乐崇拜
    亲爱的你怎么不在我身边
    小薇
    2002年的第一场雪
    有多少爱可以重来
    我的地盘
    七里香
    情人
     
    老鼠爱大米 老板电话
    冲动的惩罚 七里香
    我不是黄蓉 女生撒娇
    盛夏的果实 坚持到底
    孤单北半球 眉飞色舞
    挪威的森林 可爱女人
    最浪漫的事 老板电话

    CSEEK搜索