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 06 Python
Python+django实现文件上传
Jan 17 Python
深入讲解Java编程中类的生命周期
Feb 05 Python
Python遍历目录中的所有文件的方法
Jul 08 Python
Python中enumerate函数代码解析
Oct 31 Python
Python处理文本换行符实例代码
Feb 03 Python
python socket网络编程之粘包问题详解
Apr 28 Python
Python字符串内置函数功能与用法总结
Apr 16 Python
Python如何基于smtplib发不同格式的邮件
Dec 30 Python
python实现密码验证合格程序的思路详解
Jun 01 Python
python 使用xlsxwriter循环向excel中插入数据和图片的操作
Jan 01 Python
Python使用BeautifulSoup4修改网页内容
May 20 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服务端图片生成缩略图的方法详解
2013/06/20 PHP
php实现和c#一致的DES加密解密实例
2017/07/24 PHP
PHP数组实际占用内存大小原理解析
2020/12/11 PHP
jQuery的显示和隐藏方法与css隐藏的样式对比
2013/10/18 Javascript
JS动态添加与删除select中的Option对象(示例代码)
2013/12/25 Javascript
详解javascript函数的参数
2015/11/10 Javascript
ajax在兼容模式下失效的快速解决方法
2016/03/22 Javascript
Vuex2.0+Vue2.0构建备忘录应用实践
2016/11/30 Javascript
react-native封装插件swiper的使用方法
2018/03/20 Javascript
React router动态加载组件之适配器模式的应用详解
2018/09/12 Javascript
Vue.js组件间通信方式总结【推荐】
2018/11/23 Javascript
JavaScript如何处理移动端拍摄图片旋转问题
2019/11/16 Javascript
js实现课堂随机点名系统
2019/11/21 Javascript
webpack3.0升级4.0的方法步骤
2020/04/02 Javascript
Vue实现附件上传功能
2020/05/28 Javascript
解决echarts 一条柱状图显示两个值,类似进度条的问题
2020/07/20 Javascript
[01:10]DOTA2 Supermajor:英雄,由我们见证
2018/05/14 DOTA
python 根据pid杀死相应进程的方法
2017/01/16 Python
Python基于分水岭算法解决走迷宫游戏示例
2017/09/26 Python
对Python闭包与延迟绑定的方法详解
2019/01/07 Python
Python操作配置文件ini的三种方法讲解
2019/02/22 Python
六行python代码的爱心曲线详解
2019/05/17 Python
Ubuntu18.04下python版本完美切换的解决方法
2019/06/14 Python
Python画图实现同一结点多个柱状图的示例
2019/07/07 Python
Python3环境安装Scrapy爬虫框架过程及常见错误
2019/07/12 Python
Pytorch使用MNIST数据集实现基础GAN和DCGAN详解
2020/01/10 Python
Django rest framework分页接口实现原理解析
2020/08/21 Python
Vector, ArrayList, HashTable, HashMap哪些是线程安全的,哪些不是
2015/10/12 面试题
优秀中专生推荐信
2013/11/17 职场文书
村委会主任先进事迹
2014/01/15 职场文书
中餐厅经理岗位职责
2014/04/11 职场文书
公司担保书格式范文
2014/05/12 职场文书
房地产销售助理岗位职责
2015/04/14 职场文书
Flask response响应的具体使用
2021/07/15 Python
spring cloud 配置中心客户端启动遇到的问题
2021/09/25 Java/Android
《艾尔登法环》Boss腐烂树灵很有可能是《黑暗之魂3》的一个废案
2022/04/11 其他游戏