写个.py来测试SSD性能,程序自动填充硬盘

有时候买了新的固态会想着测试一下性能,不过目前市面上的SSD,基本上

这里我用的是python3.10+vscode

当然因为时间仓促写的一般,但是贵在能用,直接上所有的代码

import time
pathname = ""
def creatfilesize(n,pathname):
    local_time = time.strftime("%Y%m%d%H%M%S",time.localtime())
    file_name = pathname +str(local_time)+".test"
    print("写入文件路径:"+file_name)
    action = input('确认继续?(y/n)')
    
    if action == 'y':
        try:
            print("正在写入,请稍等..")
            t = time.time()
            testFile= open(file_name, 'w')
            i=1
            per = 100/n #百分比计算
            while(i<(n+1)):
                testFile.seek(1024*1024*1024*i)
                testFile.write('1')
                print(f'{per*i:.2f}%')
                i+=1
            testFile.close()
            print("\r\n写入已经完成")
            #print("写入文件大小:"+n+"GB")
            dectime = time.time() - t
            print(f'写入用时为:{dectime:.2f}s')
            print(f'平均速度为:{1024*n/dectime:.2f}MB/s')
            time.sleep(5)
        except IOError:
            print("写入失败,检查路径和文件名称")
    else:
        print("退出写入")
 
def main():
    print("=========================================")
    print("=========================================")
    print("==========硬盘写入测试工具,版本v10========")
    print("=========================================")
    print("===============SINZOTECH=================")
    print("=========================================")
    n = 1 #生成1G大小的文件
    pathname = input("输入目标位置,(例如D:\\)  :")
    n = input("输入要生成的文件大小(单位GB) :")
    gb = int(n)
    creatfilesize(gb,pathname)

while(1):
 main()

程序的核心原理

其实一开始我想当然的是用write来写字符然后循环的方法,当然实际测试发现,这个相当于你新建一个.txt,然后按住键盘上的1不放,这速度肯定是非常慢的

因此需要个效率更高的方法,那就是通过seek函数来偏移,然后写字符,最后关文件,这样python程序就实现了最为接近硬盘标称速度的写入速度。

实际执行流程

  1. 确认文件路径

  1. 确认写入大小

  1. 确认执行

  1. 记录写入开始时间

  1. 偏移指定的容量,最后写1

  1. 结束写入

  1. 计算前后时间差得到总共用时

  1. 计算写入速度

  1. 返回第一步

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值