详解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操作用法总结
Nov 10 Python
Python ldap实现登录实例代码
Sep 30 Python
Python3使用PyQt5制作简单的画板/手写板实例
Oct 19 Python
Python实现的FTP通信客户端与服务器端功能示例
Mar 28 Python
python实现将汉字保存成文本的方法
Nov 16 Python
浅谈python图片处理Image和skimage的区别
Aug 04 Python
python禁用键鼠与提权代码实例
Aug 16 Python
Python Print实现在输出中插入变量的例子
Dec 25 Python
python 爬取马蜂窝景点翻页文字评论的实现
Jan 20 Python
Python多线程threading join和守护线程setDeamon原理详解
Mar 18 Python
在服务器上安装python3.8.2环境的教程详解
Apr 26 Python
简单了解python关键字global nonlocal区别
Sep 21 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/10/09 PHP
做了CDN获取用户真实IP的函数代码(PHP与Asp设置方式)
2013/04/13 PHP
php面向对象与面向过程两种方法给图片添加文字水印
2015/08/26 PHP
CI框架无限级分类+递归的实现代码
2016/11/01 PHP
Laravel项目中timeAgo字段语言转换的改善方法示例
2019/09/16 PHP
一段实现页面上的图片延时加载的js代码
2010/02/11 Javascript
jQuery中append、insertBefore、after与insertAfter的简单用法与注意事项
2020/04/04 Javascript
javascript模版引擎-tmpl的bug修复与性能优化分析
2011/10/23 Javascript
js克隆对象、数组的常用方法介绍
2013/09/26 Javascript
jQuery创建DOM元素实例解析
2015/01/19 Javascript
浅谈JavaScript中的字符编码转换问题
2015/07/07 Javascript
轻松实现javascript图片轮播特效
2016/01/13 Javascript
jQuery Checkbox 全选 反选的简单实例
2016/11/29 Javascript
jQuery插件zTree实现获取当前选中节点在同级节点中序号的方法
2017/03/08 Javascript
Router解决跨模块下的页面跳转示例
2018/01/11 Javascript
bootstrap下拉框动态赋值方法
2018/08/10 Javascript
jQuery实现基本动画效果的方法详解
2018/09/06 jQuery
javascript中如何判断类型汇总
2019/05/14 Javascript
Angular 中使用 FineReport不显示报表直接打印预览
2019/08/21 Javascript
JS使用正则表达式判断输入框失去焦点事件
2019/10/16 Javascript
Vue 使用Props属性实现父子组件的动态传值详解
2019/11/13 Javascript
通过C++学习Python
2015/01/20 Python
Python3转换html到pdf的不同解决方案
2019/03/11 Python
python使用minimax算法实现五子棋
2019/07/29 Python
Python Opencv 通过轨迹(跟踪)栏实现更改整张图像的背景颜色
2020/03/09 Python
历史专业个人求职信范文
2013/12/07 职场文书
平面网站制作专科生的自我评价分享
2013/12/11 职场文书
给交警的表扬信
2014/01/12 职场文书
酒店员工检讨书
2014/02/18 职场文书
创建青年文明号材料
2014/05/09 职场文书
乡镇挂职心得体会
2014/09/04 职场文书
2015年入党积极分子培养考察意见
2015/08/12 职场文书
nginx共享内存的机制详解
2022/03/21 Servers
动作冒险《Hell Is Us》将采用虚幻5 消灭怪物探索王国
2022/04/13 其他游戏
win10怎么设置右下角图标不折叠?Win10设置右下角图标不折叠的方法
2022/07/15 数码科技
Java实现超大Excel文件解析(XSSF,SXSSF,easyExcel)
2022/07/15 Java/Android