详解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中IPYTHON入门实例
May 11 Python
Python简明入门教程
Aug 04 Python
搭建Python的Django框架环境并建立和运行第一个App的教程
Jul 02 Python
Python matplotlib画图实例之绘制拥有彩条的图表
Dec 28 Python
Python3实现的字典、列表和json对象互转功能示例
May 22 Python
浅析python中numpy包中的argsort函数的使用
Aug 30 Python
使用python批量读取word文档并整理关键信息到excel表格的实例
Nov 07 Python
python scipy求解非线性方程的方法(fsolve/root)
Nov 12 Python
3分钟学会一个Python小技巧
Nov 23 Python
解决使用export_graphviz可视化树报错的问题
Aug 09 Python
基于nexus3配置Python仓库过程详解
Jun 15 Python
2021年最新用于图像处理的Python库总结
Jun 15 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
mysql 的 like 问题,超强毕杀记!!!
2007/01/18 PHP
PHP FOR MYSQL 代码生成助手(根据Mysql里的字段自动生成类文件的)
2011/07/23 PHP
Chrome Web App开发小结
2014/09/04 PHP
php计算两个日期相差天数的方法
2015/03/14 PHP
PHP实现的进度条效果详解
2016/05/03 PHP
用js实现预览待上传的本地图片
2007/03/15 Javascript
javascript的trim,ltrim,rtrim自定义函数
2008/09/21 Javascript
jquery获取ASP.NET服务器端控件dropdownlist和radiobuttonlist生成客户端HTML标签后的value和text值
2010/06/28 Javascript
两种方法实现文本框输入内容提示消失
2013/03/17 Javascript
jQuery往返城市和日期查询实例讲解
2015/10/09 Javascript
js实现简易垂直滚动条
2017/02/22 Javascript
Angular4学习教程之HTML属性绑定的方法
2018/01/04 Javascript
Vue打包后出现一些map文件的解决方法
2018/02/13 Javascript
Vue 中对图片地址进行拼接的方法
2018/09/03 Javascript
vue 内置过滤器的使用总结(附加自定义过滤器)
2018/12/11 Javascript
详解如何在Javascript和Sass之间共享变量
2019/11/13 Javascript
SublimeText 2编译python出错的解决方法(The system cannot find the file specified)
2013/11/27 Python
python发送邮件实例分享
2017/07/28 Python
django数据模型(Model)的字段类型解析
2019/12/25 Python
Python爬虫与反爬虫大战
2020/07/30 Python
解析python 类方法、对象方法、静态方法
2020/08/15 Python
Pandas的数据过滤实现
2021/01/15 Python
是否可以从一个static方法内部发出对非static方法的调用?
2014/08/18 面试题
大三自我鉴定范文
2013/10/05 职场文书
初中生学习生活的自我评价
2013/11/20 职场文书
实习生的自我鉴定范文欣赏
2013/11/20 职场文书
农救科工作职责
2013/11/27 职场文书
如何撰写岗位职责
2014/02/01 职场文书
软件部经理岗位职责范本
2014/02/25 职场文书
学术诚信承诺书
2014/05/26 职场文书
2015年办公室个人工作总结
2015/04/20 职场文书
2015年超市工作总结范文
2015/05/26 职场文书
教师节班会开场白
2015/06/01 职场文书
python多次执行绘制条形图
2022/04/20 Python
win10如何更改appdata文件夹的默认位置?
2022/07/15 数码科技
纯CSS实现一个简单步骤条的示例代码
2022/07/15 HTML / CSS