Python实现测试磁盘性能的方法


Posted in Python onMarch 12, 2015

本文实例讲述了Python实现测试磁盘性能的方法。分享给大家供大家参考。具体如下:

该代码做了如下工作:

create 300000 files (512B to 1536B) with data from /dev/urandom
rewrite 30000 random files and change the size
read 30000 sequential files
read 30000 random files
delete all files
sync and drop cache after every step

bench.py代码如下:

#!/usr/bin/python

# -*- coding: utf-8 -*-

filecount = 300000

filesize = 1024

import random, time

from os import system

flush = "sudo su -c 'sync ; echo 3 > /proc/sys/vm/drop_caches'"

randfile = open("/dev/urandom", "r")

print "\ncreate test folder:"

starttime = time.time()

system("rm -rf test && mkdir test")

print time.time() - starttime

system(flush)

print "\ncreate files:"

starttime = time.time()

for i in xrange(filecount):

    rand = randfile.read(int(filesize * 0.5 + filesize * random.random()))

    outfile = open("test/" + unicode(i), "w")

    outfile.write(rand)

print time.time() - starttime

system(flush)

print "\nrewrite files:"

starttime = time.time()

for i in xrange(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)

print time.time() - starttime

system(flush)

print "\nread linear:"

starttime = time.time()

for i in xrange(int(filecount / 10)):

    infile = open("test/" + unicode(i), "r")

    outfile.write(infile.read());

print time.time() - starttime

system(flush)

print "\nread random:"

starttime = time.time()

outfile = open("/dev/null", "w")

for i in xrange(int(filecount / 10)):

    infile = open("test/" + unicode(int(random.random() * filecount)), "r")

    outfile.write(infile.read());

print time.time() - starttime

system(flush)

print "\ndelete all files:"

starttime = time.time()

system("rm -rf test")

print time.time() - starttime

system(flush)

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
分析用Python脚本关闭文件操作的机制
Jun 28 Python
Linux CentOS7下安装python3 的方法
Jan 21 Python
python实现自动发送邮件
Jun 20 Python
win7下python3.6安装配置方法图文教程
Jul 31 Python
实例讲解Python脚本成为Windows中运行的exe文件
Jan 24 Python
对Django中static(静态)文件详解以及{% static %}标签的使用方法
Jul 28 Python
python数据类型之间怎么转换技巧分享
Aug 20 Python
kafka-python 获取topic lag值方式
Dec 23 Python
解决Keras中循环使用K.ctc_decode内存不释放的问题
Jun 29 Python
python实现经纬度采样的示例代码
Dec 10 Python
Python实现石头剪刀布游戏
Jan 20 Python
PYTHON使用Matplotlib去实现各种条形图的绘制
Mar 22 Python
Python解析xml中dom元素的方法
Mar 12 #Python
Python实现Tab自动补全和历史命令管理的方法
Mar 12 #Python
Python实现将n个点均匀地分布在球面上的方法
Mar 12 #Python
Python求解平方根的方法
Mar 11 #Python
python自动格式化json文件的方法
Mar 11 #Python
python处理csv数据的方法
Mar 11 #Python
python模拟鼠标拖动操作的方法
Mar 11 #Python
You might like
不用GD库生成当前时间的PNG格式图象的程序
2006/10/09 PHP
全局记录程序片段的运行时间 正确找到程序逻辑耗时多的断点
2011/01/06 PHP
PHP中3种生成XML文件方法的速度效率比较
2012/10/06 PHP
PHP利用MySQL保存session的实现思路及示例代码
2014/09/09 PHP
tp5框架无刷新分页实现方法分析
2019/09/26 PHP
简单的jQuery入门指引
2015/07/28 Javascript
js模仿php中strtotime()与date()函数实现方法
2015/08/11 Javascript
js获取本机操作系统类型的两种方法
2015/12/19 Javascript
jQuery动态生成表格及右键菜单功能示例
2017/01/13 Javascript
基于JavaScript实现复选框的全选和取消全选
2017/02/09 Javascript
彻底学会Angular.js中的transclusion
2017/03/12 Javascript
vue视图不更新情况详解
2019/05/16 Javascript
webpack中如何加载静态文件的方法步骤
2019/05/18 Javascript
原生js无缝轮播插件使用详解
2020/03/09 Javascript
在Vuex中Mutations修改状态操作
2020/07/24 Javascript
[01:06]DOTA2小知识课堂 Ep.02 吹风竟可解梦境缠绕
2019/12/05 DOTA
python实现将pvr格式转换成pvr.ccz的方法
2015/04/28 Python
Python实现线程状态监测简单示例
2018/03/28 Python
python中的句柄操作的方法示例
2019/06/20 Python
使用python 写一个静态服务(实战)
2019/06/28 Python
Python3分析处理声音数据的例子
2019/08/27 Python
Python实现从N个数中找到最大的K个数
2020/04/02 Python
Python 跨.py文件调用自定义函数说明
2020/06/01 Python
python程序需要编译吗
2020/06/19 Python
python实现发送带附件的邮件代码分享
2020/09/22 Python
皮尔·卡丹巴西官方商店:Pierre Cardin
2017/07/21 全球购物
开水果连锁店创业计划书
2013/12/29 职场文书
人事专员岗位职责范本
2014/03/04 职场文书
电子商务专业求职信
2014/03/08 职场文书
搞笑爱情保证书
2014/04/29 职场文书
大学生个人先进事迹材料范文
2014/05/03 职场文书
中学生运动会通讯稿大全
2014/09/18 职场文书
卖车协议书范本4篇
2014/10/01 职场文书
关于公司年会的开幕词
2016/03/04 职场文书
python数据分析之用sklearn预测糖尿病
2021/04/22 Python
django学习之ajax post传参的2种格式实例
2021/05/14 Python