Python实现测试磁盘性能的方法
本文实例讲述了Python实现测试磁盘性能的方法。分享给大家供大家参考。具体如下:
该代码做了如下工作:
create300000files(512Bto1536B)withdatafrom/dev/urandom
rewrite30000randomfilesandchangethesize
read30000sequentialfiles
read30000randomfiles
deleteallfiles
syncanddropcacheaftereverystep
bench.py代码如下:
#!/usr/bin/python
#-*-coding:utf-8-*-
filecount=300000
filesize=1024
importrandom,time
fromosimportsystem
flush="sudosu-c'sync;echo3>/proc/sys/vm/drop_caches'"
randfile=open("/dev/urandom","r")
print"\ncreatetestfolder:"
starttime=time.time()
system("rm-rftest&&mkdirtest")
printtime.time()-starttime
system(flush)
print"\ncreatefiles:"
starttime=time.time()
foriinxrange(filecount):
rand=randfile.read(int(filesize*0.5+filesize*random.random()))
outfile=open("test/"+unicode(i),"w")
outfile.write(rand)
printtime.time()-starttime
system(flush)
print"\nrewritefiles:"
starttime=time.time()
foriinxrange(int(filecount/10)):
rand=randfile.read(int(filesize*0.5+filesize*random.random()))
outfile=open("test/"+unicode(int(random.random()*filecount)),"w")
outfile.write(rand)
printtime.time()-starttime
system(flush)
print"\nreadlinear:"
starttime=time.time()
foriinxrange(int(filecount/10)):
infile=open("test/"+unicode(i),"r")
outfile.write(infile.read());
printtime.time()-starttime
system(flush)
print"\nreadrandom:"
starttime=time.time()
outfile=open("/dev/null","w")
foriinxrange(int(filecount/10)):
infile=open("test/"+unicode(int(random.random()*filecount)),"r")
outfile.write(infile.read());
printtime.time()-starttime
system(flush)
print"\ndeleteallfiles:"
starttime=time.time()
system("rm-rftest")
printtime.time()-starttime
system(flush)
希望本文所述对大家的Python程序设计有所帮助。