详解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中List.count()方法的使用教程
May 20 Python
python学习之面向对象【入门初级篇】
Jan 21 Python
Python 含参构造函数实例详解
May 25 Python
python Socket之客户端和服务端握手详解
Sep 18 Python
使用numba对Python运算加速的方法
Oct 15 Python
python去掉 unicode 字符串前面的u方法
Oct 21 Python
解决python执行不输出系统命令弹框的问题
Jun 24 Python
如何在mac环境中用python处理protobuf
Dec 25 Python
python 实现读取csv数据,分类求和 再写进 csv
May 18 Python
python打开音乐文件的实例方法
Jul 21 Python
Python 打印自己设计的字体的实例讲解
Jan 04 Python
Python图片验证码降噪和8邻域降噪
Aug 30 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教程之PHP中shell脚本的使用方法分享
2012/02/23 PHP
深入理解用mysql_fetch_row()以数组的形式返回查询结果
2013/06/05 PHP
thinkphp的dump函数无输出实例代码
2016/11/15 PHP
laravel 查询数据库获取结果实现判断是否为空
2019/10/24 PHP
a标签的css样式四个状态
2021/03/09 HTML / CSS
JavaScript监测ActiveX控件是否已经安装过的代码
2008/09/02 Javascript
深入理解JavaScript系列(1) 编写高质量JavaScript代码的基本要点
2012/01/15 Javascript
取消选中单选框radio的三种方式示例介绍
2013/12/23 Javascript
jquery获取复选框checkbox的值的简单实现方法
2016/05/26 Javascript
easyUI combobox实现联动效果
2017/01/17 Javascript
基于AngularJS的拖拽文件上传的实例代码
2017/07/15 Javascript
JS库 Highlightjs 添加代码行号的实现代码
2017/09/13 Javascript
vue-cli常用设置总结
2018/02/24 Javascript
Vue中使用vux配置代码详解
2018/09/16 Javascript
js实现轮播图特效
2020/05/28 Javascript
详细分析Node.js 多进程
2020/06/22 Javascript
实例讲解React 组件
2020/07/07 Javascript
[55:32]2018DOTA2亚洲邀请赛 4.4 淘汰赛 EG vs LGD 第二场
2018/04/05 DOTA
python同时给两个收件人发送邮件的方法
2015/04/30 Python
在Python中操作字典之setdefault()方法的使用
2015/05/21 Python
通过pykafka接收Kafka消息队列的方法
2018/12/27 Python
python 设置xlabel,ylabel 坐标轴字体大小,字体类型
2019/07/23 Python
手把手教你Python yLab的绘制折线图的画法
2019/10/23 Python
django 模型中的计算字段实例
2020/05/19 Python
解决pycharm修改代码后第一次运行不生效的问题
2021/02/06 Python
css3编写浏览器背景渐变背景色的方法
2018/03/05 HTML / CSS
Emma Bridgewater官网:英国餐具制造商
2019/11/24 全球购物
北京天润融通.net面试题笔试题
2012/02/20 面试题
公司营业员的工作总结自我评价
2013/10/05 职场文书
营销与策划专业毕业生求职信
2013/11/01 职场文书
银行爱岗敬业演讲稿
2014/05/05 职场文书
员工保密协议书
2014/09/27 职场文书
党的群众路线教育实践活动学习计划
2014/11/03 职场文书
元旦晚会开场白
2015/05/29 职场文书
《没有任何借口》读后感:完美的执行能力
2020/01/07 职场文书
浅析Django接口版本控制
2021/06/26 Python