详解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处理RSS、ATOM模块FEEDPARSER介绍
Feb 18 Python
Python中datetime常用时间处理方法
Jun 15 Python
在Python的struct模块中进行数据格式转换的方法
Jun 17 Python
Python的面向对象编程方式学习笔记
Jul 12 Python
Python学习小技巧之利用字典的默认行为
May 20 Python
Python数据结构之栈、队列的实现代码分享
Dec 04 Python
Python OpenCV 使用滑动条来调整函数参数的方法
Jul 08 Python
python数值基础知识浅析
Nov 19 Python
PyTorch 解决Dataset和Dataloader遇到的问题
Jan 08 Python
Django QuerySet查询集原理及代码实例
Jun 13 Python
Python如何输出百分比
Jul 31 Python
基于python的matplotlib制作双Y轴图
Apr 20 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实现的双向队列类实例
2014/09/24 PHP
PHP Ajax JavaScript Json获取天气信息实现代码
2016/08/17 PHP
Laravel5.* 打印出执行的sql语句的方法
2017/07/24 PHP
让iframe子窗体取父窗体地址栏参数(querystring)
2009/10/13 Javascript
ExtJS Window 最小化的一种方法
2009/11/18 Javascript
js数组的基本用法及数组根据下标(数值或字符)移除元素
2013/10/20 Javascript
javascript图片滑动效果实现
2021/01/28 Javascript
jQuery+jsp实现省市县三级联动效果(附源码)
2015/12/03 Javascript
JS区分浏览器页面是刷新还是关闭
2016/04/17 Javascript
vue.js实现表格合并示例代码
2016/11/30 Javascript
快速掌握jQuery插件开发
2017/01/19 Javascript
bootstrap中添加额外的图标实例代码
2017/02/15 Javascript
详解JavaScript调用栈、尾递归和手动优化
2017/06/03 Javascript
JS实现商品筛选功能
2020/08/19 Javascript
vue滚动轴插件better-scroll使用详解
2017/10/17 Javascript
jQuery中库的引用方法
2018/01/06 jQuery
vue 使用ref 让父组件调用子组件的方法
2018/02/08 Javascript
vue里面v-bind和Props 利用props绑定动态数据的方法
2018/08/27 Javascript
原生js检测页面加载完毕的实例
2018/09/11 Javascript
微信小程序scroll-view横向滑动嵌套for循环的示例代码
2018/09/20 Javascript
浅谈redux, koa, express 中间件实现对比解析
2019/05/23 Javascript
跟老齐学Python之让人欢喜让人忧的迭代
2014/10/02 Python
python编程开发之textwrap文本样式处理技巧
2015/11/13 Python
windows及linux环境下永久修改pip镜像源的方法
2016/11/28 Python
Python数据结构与算法(几种排序)小结
2019/06/22 Python
python编程进阶之类和对象用法实例分析
2020/02/21 Python
海淘母婴商城:国际妈咪
2016/07/23 全球购物
Asics日本官网:鬼冢八喜郎创立的跑鞋运动品牌
2017/10/18 全球购物
财务会计专业求职信范文
2013/12/31 职场文书
2014党员学习习主席讲话思想汇报
2014/09/15 职场文书
法定授权委托证明书
2014/09/27 职场文书
项目投资意向书范本
2015/05/09 职场文书
一年级语文教学随笔
2015/08/14 职场文书
2016年幼儿园庆六一开幕词
2016/03/04 职场文书
html粘性页脚的具体使用
2022/01/18 HTML / CSS
从结婚开始的恋爱故事。小说《我的美好婚事》TV动画化决定
2022/04/07 日漫