有时候买了新的固态会想着测试一下性能,不过目前市面上的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
结束写入
计算前后时间差得到总共用时
计算写入速度
返回第一步