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使用正则搜索字符串或文件中的浮点数代码实例
Jul 11 Python
使用Python脚本来控制Windows Azure的简单教程
Apr 16 Python
在Python中处理XML的教程
Apr 29 Python
python 把数据 json格式输出的实例代码
Oct 31 Python
python 实现自动远程登陆scp文件实例代码
Mar 13 Python
windows系统下Python环境搭建教程
Mar 28 Python
python中返回矩阵的行列方法
Apr 04 Python
Python配置虚拟环境图文步骤
May 20 Python
对python中的float除法和整除法的实例详解
Jul 20 Python
python openvc 裁剪、剪切图片 提取图片的行和列
Sep 19 Python
基于python实现地址和经纬度转换
May 19 Python
Python实现区域填充的示例代码
Feb 03 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
PHP访问MYSQL数据库封装类(附函数说明)
2010/12/04 PHP
php 的加密函数 md5,crypt,base64_encode 等使用介绍
2012/04/09 PHP
php echo, print, print_r, sprintf, var_dump, var_expor的使用区别
2013/06/20 PHP
PHP中spl_autoload_register函数的用法总结
2013/11/07 PHP
Yii2.0高级框架数据库增删改查的一些操作
2015/11/16 PHP
微信支付扫码支付php版
2016/07/22 PHP
php实现微信公众平台发红包功能
2018/06/14 PHP
[原创]PHP global全局变量经典应用与注意事项分析【附$GLOBALS用法对比】
2019/07/12 PHP
laravel框架模型和数据库基础操作实例详解
2020/01/25 PHP
JS与框架页的操作代码
2010/01/17 Javascript
JQuery实现的在新窗口打开链接的方法小结
2010/04/22 Javascript
JQuery的$命名冲突详细解析
2013/12/28 Javascript
浅谈关于JavaScript API设计的一些建议和准则
2015/06/24 Javascript
js仿小米官网图片轮播特效
2016/09/29 Javascript
详解vue父子模版嵌套案例
2017/03/04 Javascript
easyui-datagrid开发实践(总结)
2017/08/02 Javascript
React 高阶组件入门介绍
2018/01/11 Javascript
200行代码实现blockchain 区块链实例详解
2018/03/14 Javascript
Node.js中package.json中库的版本号(~和^)
2019/04/02 Javascript
使用原生js编写一个简单的框选功能方法
2019/05/13 Javascript
操作按钮悬浮固定在微信小程序底部的实现代码
2019/08/02 Javascript
vue实现计步器功能
2019/11/01 Javascript
JQuery事件委托(适用于给动态生成的脚本元素添加事件)
2020/02/01 jQuery
js实现从右往左匀速显示图片(无缝轮播)
2020/06/29 Javascript
基于jQuery拖拽事件的封装
2020/11/29 jQuery
利用Python如何实现数据驱动的接口自动化测试
2018/05/11 Python
python str字符串转uuid实例
2020/03/03 Python
CSS3 实现弹幕的示例代码
2017/08/07 HTML / CSS
师范生自荐信模板
2014/05/28 职场文书
公司应聘求职信
2014/06/21 职场文书
2014教师党员自我评议总结
2014/09/19 职场文书
2014年青年教师工作总结
2014/12/17 职场文书
教师工作表现评语
2014/12/31 职场文书
个人年终总结开头
2015/03/06 职场文书
Redis命令处理过程源码解析
2022/02/12 Redis
Nginx工作模式及代理配置的使用细节
2022/03/21 Servers