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 相关文章推荐
使用python3.5仿微软记事本notepad
Jun 15 Python
Python中摘要算法MD5,SHA1简介及应用实例代码
Jan 09 Python
Python 网络爬虫--关于简单的模拟登录实例讲解
Jun 01 Python
Matplotlib中文乱码的3种解决方案
Nov 15 Python
pandas ix &iloc &loc的区别
Jan 10 Python
python多任务及返回值的处理方法
Jan 22 Python
用Python逐行分析文件方法
Jan 28 Python
python学生管理系统
Jan 30 Python
python的几种矩阵相乘的公式详解
Jul 10 Python
Django框架HttpRequest对象用法实例分析
Nov 01 Python
python将数据插入数据库的代码分享
Aug 16 Python
python 常用日期处理-- datetime 模块的使用
Sep 02 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弹出对话框实现重定向代码
2014/01/23 PHP
php基于mcrypt的加密解密实例
2014/10/27 PHP
php中有关合并某一字段键值相同的数组合并的改进
2015/03/10 PHP
百度工程师讲PHP函数的实现原理及性能分析(二)
2015/05/13 PHP
Javascript技术技巧大全(五)
2007/01/22 Javascript
!DOCTYPE声明对JavaScript的影响分析
2010/04/12 Javascript
js打印纸函数代码(递归)
2010/06/18 Javascript
使用jquery局部刷新(jquery.load)从数据库取出数据
2014/01/22 Javascript
JS制作手机端自适应缩放显示
2015/06/11 Javascript
今天抽时间给大家整理jquery和ajax的相关知识
2015/11/17 Javascript
手机端转换rem适应
2017/04/01 Javascript
Vue中添加手机验证码组件功能操作方法
2017/12/07 Javascript
VUE在for循环里面根据内容值动态的加入class值的方法
2018/08/12 Javascript
Vue2实时监听表单变化的示例讲解
2018/08/30 Javascript
NodeJs 实现简单WebSocket即时通讯的示例代码
2019/08/05 NodeJs
深入了解Vue.js 混入(mixins)
2020/07/23 Javascript
JQuery基于FormData异步提交数据文件
2020/09/01 jQuery
[00:36]DOTA2勇士令状莱恩声望物品——冥晶之厄展示
2018/05/25 DOTA
python基础入门详解(文件输入/输出 内建类型 字典操作使用方法)
2013/12/08 Python
pycharm 使用心得(三)Hello world!
2014/06/05 Python
Python动态导入模块的方法实例分析
2018/06/28 Python
python实现将文件夹下面的不是以py文件结尾的文件都过滤掉的方法
2018/10/21 Python
Django框架实现分页显示内容的方法详解
2019/05/10 Python
Kali Linux安装ipython2 和 ipython3的方法
2019/07/11 Python
解决python 3 urllib 没有 urlencode 属性的问题
2019/08/22 Python
tensorflow模型保存、加载之变量重命名实例
2020/01/21 Python
python程序文件扩展名知识点详解
2020/02/27 Python
如何使用PyCharm引入需要使用的包的方法
2020/09/22 Python
编译 pycaffe时报错:fatal error: numpy/arrayobject.h没有那个文件或目录
2020/11/29 Python
最便宜促销价格订机票:Airpaz(总部设在印尼,支持中文)
2018/11/13 全球购物
The North Face官方旗舰店:美国著名户外品牌
2020/09/28 全球购物
美术毕业生求职信
2014/02/25 职场文书
党的群众路线教育实践活动查摆剖析材料
2014/10/10 职场文书
2014年社区宣传工作总结
2014/12/02 职场文书
2015年采购部工作总结
2015/04/23 职场文书
对领导班子的意见和建议
2015/06/08 职场文书