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中内置的NotImplemented类型的用法
Mar 31 Python
Python中处理字符串之endswith()方法的使用简介
May 18 Python
Python实现的选择排序算法示例
Nov 29 Python
python print 按逗号或空格分隔的方法
May 02 Python
python 统计数组中元素出现次数并进行排序的实例
Jul 02 Python
实例详解Matlab 与 Python 的区别
Apr 26 Python
Django Serializer HiddenField隐藏字段实例
Mar 31 Python
使用Python三角函数公式计算三角形的夹角案例
Apr 15 Python
Python中使用filter过滤列表的一个小技巧分享
May 02 Python
查看keras各种网络结构各层的名字方式
Jun 11 Python
Python爬虫headers处理及网络超时问题解决方案
Jun 19 Python
什么是Python装饰器?如何定义和使用?
Apr 11 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
PHP5 字符串处理函数大全
2010/03/23 PHP
php调用shell的方法
2014/11/05 PHP
PHP使用fopen与file_get_contents读取文件实例分享
2016/03/04 PHP
php文件上传的两种实现方法
2016/04/04 PHP
PHP 二级子目录(后台目录)设置二级域名
2017/03/02 PHP
php表单处理操作
2017/11/16 PHP
PhpStorm2020 + phpstudyV8 +XDebug的教程详解
2020/09/17 PHP
javascript下数值型比较难点说明
2010/06/07 Javascript
在JavaScript中使用NaN值的方法
2015/06/05 Javascript
jQuery Validate表单验证插件 添加class属性形式的校验
2016/01/18 Javascript
jQuery组件easyui基本布局实现代码
2016/08/25 Javascript
AngularJs bootstrap搭载前台框架——准备工作
2016/09/01 Javascript
详解jQuery简单的表单应用
2016/12/16 Javascript
基于JavaScript实现熔岩灯效果导航菜单
2017/01/04 Javascript
Bootstrap导航简单实现代码
2017/03/06 Javascript
js实现移动端轮播图效果
2020/12/09 Javascript
理解 Node.js 事件驱动机制的原理
2017/08/16 Javascript
javascript 中事件冒泡和事件捕获机制的详解
2017/09/01 Javascript
AngularJS select加载数据选中默认值的方法
2018/02/28 Javascript
Vue.js组件实现选项卡以及切换特效
2019/07/24 Javascript
ES6 Iterator接口和for...of循环用法分析
2019/07/31 Javascript
对vue生命周期的深入理解
2020/12/03 Vue.js
利用Hyperic调用Python实现进程守护
2018/01/02 Python
python加载自定义词典实例
2019/12/06 Python
Pytorch 多维数组运算过程的索引处理方式
2019/12/27 Python
Python通过队列来实现进程间通信的示例
2020/10/14 Python
CSS3中使用RGBa来调节透明度的教程
2016/05/09 HTML / CSS
应届生煤化工求职信
2013/10/21 职场文书
项目经理的岗位职责
2013/11/23 职场文书
同学聚会老师邀请函
2014/01/28 职场文书
优秀教师先进材料
2014/12/16 职场文书
2016计算机专业毕业生自荐信
2016/01/28 职场文书
Python WSGI 规范简介
2021/04/11 Python
GitHub上77.9K的Axios项目有哪些值得借鉴的地方详析
2021/06/15 Javascript
vue使用refs获取嵌套组件中的值过程
2022/03/31 Vue.js
Win11控制面板快捷键是什么?Win11打开控制面板的方法汇总
2022/07/07 数码科技