详解Python中__str__和__repr__方法的区别


Posted in Python onApril 17, 2015

 对我当前工程进行全部测试需要花费不少时间。既然有 26 GB 空闲内存,为何不让其发挥余热呢? tmpfs 可以通过把文件系统保存在大内存中来加速测试的执行效率。

但优点也是缺点,tmpfs 只把结果保存在内存中,所以你必须自己编写脚本来把结果回写到磁盘上进行保留。而且这些脚本必须良好书写和执行,否则就要失去部分或全部的工作成果了。

一种常见的方法是直接在tmpfs文件夹中工作,然后把工作成果备份到磁盘上的一个文件夹中。当您的机器启动时你从那个备份文件夹恢复tmpfs文件夹。启动之后用cron同步tmpfs文件夹和磁盘文件夹。

我发现这个设置有点复杂容易出错。在启动的时候,或者对于crom,我从没有真正的相信。现在我用一种简单得多的设置,根本不用cron。

在我的机器上运行一个单项测试,使用IDE并发布于web服务器,其性能通常是合理的,只有运行全部测试需要许多时间。

我发现最佳之处是在磁盘上设置一个workspace,与/dev/shmand目录下运行所有测试的tmpfs同步。这或多或少使我的设置无需改变,并消除了可能松散的工作,这些仅仅是因为我在正确设置方面太垃圾了。

性能提升的结果是合理的:
 

$ nosetests && run_tests.py
........................................................................................................................................................................................................................................................
----------------------------------------------------------------------
Ran 248 tests in 107.070s
 
OK
........................................................................................................................................................................................................................................................
----------------------------------------------------------------------
Ran 248 tests in 19.423s
 
OK

现在比原来提高了 5 倍速度。

使用 python 来进行设置非常简单:
 

#!/bin/bash -e
 
WORK=src/py
LOG=$(pwd)/test.log
TARGET=$(hg root)
SHADOW=/dev/shm/shadow/$TARGET
 
date > $LOG
mkdir -p $SHADOW
 
cd $SHADOW
rsync --update --delete --exclude=".*" --exclude=ENV --archive $TARGET ./..
 
if [ ! -d ENV ]
then
 virtualenv ENV
fi
. ENV/bin/activate
 
cd $WORK
python setup.py develop >> $LOG
nosetests $* | tee -a $LOG
exit ${PIPESTATUS[0]}

我只要重复同步到/dev/shm目录,设置测试环境(virtualenv and python setup.PY)和运行测试(nosetests)。

在tmpfs文件夹里仍可用命令行运行单个测试。也可以把这个从你的IDE中踢走,但你会失去你的测试运行和调试的能力。如我之前所说,我现在不需要这些。

我希望我对tmpfs的这个变通使用能帮助你建立一个更快速的开发环境,而无须遭受所有的脚本麻烦。

Python 相关文章推荐
python中input()与raw_input()的区别分析
Feb 27 Python
Python多层嵌套list的递归处理方法(推荐)
Jun 08 Python
Python中的pack和unpack的使用
Mar 12 Python
浅谈Python采集网页时正则表达式匹配换行符的问题
Dec 20 Python
python pandas库的安装和创建
Jan 10 Python
Python3的高阶函数map,reduce,filter的示例详解
Jul 23 Python
详解Python self 参数
Aug 30 Python
Django框架HttpResponse对象用法实例分析
Nov 01 Python
tensorflow之tf.record实现存浮点数数组
Feb 17 Python
TensorFlow2.1.0最新版本安装详细教程
Apr 08 Python
解决Python发送Http请求时,中文乱码的问题
Apr 30 Python
Python 多线程处理任务实例
Nov 07 Python
使用Python设置tmpfs来加速项目的教程
Apr 17 #Python
在Python上基于Markov链生成伪随机文本的教程
Apr 17 #Python
基于scrapy实现的简单蜘蛛采集程序
Apr 17 #Python
在Python的Django框架中实现Hacker News的一些功能
Apr 17 #Python
由Python运算π的值深入Python中科学计算的实现
Apr 17 #Python
在Python中实现贪婪排名算法的教程
Apr 17 #Python
在Linux下调试Python代码的各种方法
Apr 17 #Python
You might like
PHP语法速查表
2006/12/06 PHP
PHP 上传文件大小限制
2009/07/05 PHP
php正则取img标记中任意属性(正则替换去掉或改变图片img标记中的任意属性)
2013/08/13 PHP
PHP之预定义接口详解
2015/07/29 PHP
Linux+Nginx+MySQL下配置论坛程序Discuz的基本教程
2015/12/23 PHP
PHP实现的超长文本分页显示功能示例
2018/06/04 PHP
PHP中如何使用Redis接管文件存储Session详解
2018/11/28 PHP
PHP设计模式之模板模式定义与用法详解
2018/12/20 PHP
Windows Live的@live.com域名注册漏洞 利用代码
2006/12/27 Javascript
jquery获得页面元素的坐标值实现思路及代码
2013/04/15 Javascript
浅谈angular懒加载的一些坑
2016/08/20 Javascript
ES5 ES6中Array对象去除重复项的方法总结
2017/04/27 Javascript
使用JavaScript实现表格编辑器(实例讲解)
2017/08/02 Javascript
react路由配置方式详解
2017/08/07 Javascript
Vue组件实例间的直接访问实现代码
2017/08/20 Javascript
Vue ElementUI之Form表单验证遇到的问题
2017/08/21 Javascript
基于ES6 Array.of的用法(实例讲解)
2017/09/05 Javascript
微信小程序实现页面分享onShareAppMessage
2019/08/12 Javascript
JavaScript数组常用的增删改查与其他属性详解
2020/10/13 Javascript
vue router-link 默认a标签去除下划线的实现
2020/11/06 Javascript
Python的Django框架中设置日期和字段可选的方法
2015/07/17 Python
使用Python保存网页上的图片或者保存页面为截图
2016/03/05 Python
Python闭包函数定义与用法分析
2018/07/20 Python
Pytorch Tensor的索引与切片例子
2019/08/18 Python
python创建ArcGIS shape文件的实现
2019/12/06 Python
opencv3/C++实现视频读取、视频写入
2019/12/11 Python
巧用CSS3 border实现图片遮罩效果代码
2012/04/09 HTML / CSS
美国时尚假发购物网站:Wigsbuy
2019/04/06 全球购物
领导的自我鉴定
2013/12/28 职场文书
运动会稿件100字
2014/02/21 职场文书
大一新生检讨书
2014/10/29 职场文书
家长给老师的感谢信
2015/01/20 职场文书
幼师辞职信范文
2015/02/27 职场文书
2015年小学生国庆节演讲稿
2015/07/30 职场文书
HTML中的表单元素介绍
2022/02/28 HTML / CSS
星际争霸:毕姥爷vs解冻01
2022/04/01 星际争霸