重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
前日在用SiSofare Sandra 测试硬盘性能时突发其想 用自己熟悉的VB NET测试行不行呢?具体怎么做呢?我们最感兴趣的是硬盘在最大负荷下持续的读取和写入速度 为了能够比较准确的测出平均速度 我决定采用先写入一个 GB的文件再读取出来的办法 考虑到不要让更多的任务花在循环上 我首先建立起一个足够大的缓冲区 然后往磁盘写入这个缓冲的内容 从而使硬盘达到最大的负荷 考虑到Windows的读取机制 硬盘测试不太准确 此程序的读取部分只能在第一次运行时使用 运行次数越多测试也不准确 而写入测试多次运行以后依然能够保持准确性 现在就开始动手 在VB NET中创建了一个控制台工程TestHarddisk 然后在Sub Main中写入下列程序 Sub Main()Dim I As Int 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 Int = * * File size = GBDim bufSize As Int = * * Buffer Size = MBDim jLast As Int = bufSize Dim j As Int Dim Bytes(bufSize) As ByteDim StartWrite As Date = Date NowConsole WriteLine( Write Start at { } StartWrite)Console WriteLine( Creating )For I = To Size Step bufSize GBfw Write(Bytes)NextDim EndWrite As Date = Date NowDim TimePassed As TimeSpan = EndWrite Subtract(StartWrite)Console WriteLine( Write End at { } EndWrite)Console WriteLine( Time passed:{ } TimePassed)Console WriteLine( Speed:{ } / TimePassed TotalSeconds)fw Flush()Dim StartRead As Date = Date NowConsole WriteLine( Read Start at { } StartRead)Console WriteLine( Reading )For I = To Size Step bufSizeBytes = fr ReadBytes(bufSize)NextDim EndRead As Date = Date NowTimePassed = EndRead Subtract(StartRead)Console WriteLine( Read End at { } EndRead)Console WriteLine( Time passed:{ } TimePassed)Console WriteLine( Read speed:{ } / TimePassed TotalSeconds)Console ReadLine()fw Close()End Sub现在测试 硬件配置 Athlon +(running at G)EPOX RDA + nForce 主板 DDR (running at MHz)ATA Seagate GB MB 软件配置 Windows Server Standard Edition全套最新的WHQL驱动程序Visual Studio 编译选择Realse模式 打开所有优化选项 第一次运行测试得写入速度 MB/s 第二次测得 MB/s 第三次 MB/s与Sisofare测试得的结果 MB/s相差不大 达到了理想的效果 然而读取测试就变态了 第一次 MB/s 与Sissofare测试多了 MB/s左右 第二次达到了 MB/s 第三次 MB/s 这和Windows的磁盘缓冲机制有关 看来作用还是蛮大的 当然 建议读取测试在重起电脑以后进行 lishixinzhi/Article/program/net/201311/13666
公司主营业务:成都网站建设、成都做网站、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。成都创新互联公司是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。成都创新互联公司推出琼海免费做网站回馈大家。
换个目录试试,系统盘user目录权限较高。然后关闭杀毒软件试试。
可以将文件等分成两部分,分别用两个private读取就是2线程。
内存解决方案:不要等程序自动GC,自己手动释放不需要内存。
缺陷:可能会浪费时间。
文件打开后使用完要及时关闭。
未关闭,这样再打开就显示处于被占用状态。