• 测试技术培训:如何测试磁盘写的速度


    测试技术培训:如何测试磁盘写的速度

     

      经常会有一些测试任务需要我们用自动化的手段完成,这样就要求开发一些程序出来完成测试,这样的工作内容是测试开发工程师的典型工作,下面在poptest的培训过程中我们提出一个问题如何测试磁盘写的速度?  下面给大家分享下:

    如何测试写磁盘的速度?

    1、问题:测试写磁盘的速度? 
    1)以多大的Buffer写入磁盘会速度更快? 
    2)磁盘的写速度是否能达到磁盘阵列厂商标称的最大值?

    2、基于以上两个问题,思考如何测试写磁盘速度? 
    问题近一步细化: 
    1)速度=写入大小/写入时间间隔,即可以重点内容测试一定时间间隔内写入数据的大小。 
    2)每次写入的时候设定不同的大小:512k,1M,2M,5M,10M,20M,50M,100M,200M,300M….. 
    循环写入100-10次,看哪个大小的Buffer写入的最快。

    3、遇到的知识点: 
    1)栈内存最大可开辟空间的大小,Vs2010为1M-2M,实测中大了会有错误提示。 
    2)堆内存最大可开辟空间的大小,由内存和虚拟内存决定,32位系统最大为2GB,但和当前系统运行 
    其他程序情况和虚拟内存大小有关。实测发现32位win7系统300M左右堆内存连续写10次磁盘程序就会崩溃。

    4、相关知识点教科书上解释: 
    栈:在Windows下,栈是向低地址扩展数据结构,是一块连续内存区域。这句话意思是栈顶地址和栈最大容量是系统预先规定好, 
    在WINDOWS下,栈大小是2M(也有说是1M,总之是一个编译时就确定常数),如果申请空间超过栈剩余空间时,将提示overflow。因此,能从栈获得空间较小。 
    堆:堆是向高地址扩展数据结构,是不连续内存区域。这是由于系统是用链表来存储空闲内存地址,自然是不连续,而链表遍历方向是由低地址向高地址。 
    堆大小受限于计算机系统中有效虚拟内存。由此可见,堆获得空间比较灵活,也比较大。

  • 相关阅读:
    64位平台支持大于2 GB大小的数组
    NET Framework 4.5新特性 数据库的连接加密保护。
    永无止境之网站的伸缩性架构
    ASP.NET MVC IOC 之Ninject攻略
    C# 中几个小“陷阱”
    AngularJS的依赖注入方式
    JVM内存配置详解(转)
    StringBuilder、StringBuffer和String三者的联系和区别(转)
    Java线程的生命周期(转)
    Java程序员须知的七个日志管理工具(转)
  • 原文地址:https://www.cnblogs.com/poptest/p/5148559.html
Copyright © 2020-2023  润新知