对我当前工程进行全部测试需要花费不少时间。既然有 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中的str方法和repr方法_详解Python中__str__和__repr__方法的区别相关推荐

  1. python中的str方法和repr方法_Python中 的 __str__ 方法和 __repr__ 方法的区别有哪些

    Python中 的 __str__ 方法和 __repr__ 方法的区别有哪些 发布时间:2020-11-05 17:11:48 来源:亿速云 阅读:95 作者:Leah 本篇文章给大家分享的是有关P ...

  2. python整数类型没有取值范围限制_详解Python中6种数据类型

    Python中数据类型主要有六种:数字类型,字符串类型,元组类型,列表类型,文件类型和字典类型,我们今天先介绍前四种类型. 假如在Python程序中,出现了"010",那么这个&q ...

  3. python random库生成伯努利随机数的方法_详解Python基础random模块随机数的生成

    随机数参与的应用场景大家一定不会陌生,比如密码加盐时会在原密码上关联一串随机数,蒙特卡洛算法会通过随机数采样等等.Python内置的random模块提供了生成随机数的方法,使用这些方法时需要导入ran ...

  4. java中的invoke方法_详解Java中Method的Invoke方法

    在写代码的时候,发现从父类class通过getDeclaredMethod获取的Method可以调用子类的对象,而子类改写了这个方法,从子类class通过getDeclaredMethod也能获取到M ...

  5. python不是内部或外部命令的解决方法_详解python常见报错--NO MODULE NAMED _SQLITE3解决方法...

    概述 在安装一些基于python的程序时,经常遇到"ImportError: No module named _sqlite3"问题. 下面记录下解决方法. 解决办法 1.编译sq ...

  6. java生成pdf方法_详解Java生成PDF文档方法|chu

    最近项目需要实现PDF下载的功能,由于没有这方面的经验,从网上花了很长时间才找到相关的资料.整理之后,发现有如下几个框架可以实现这个功能. 1. 开源框架支持iText,生成PDF文档,还支持将XML ...

  7. Java中final类是存放在哪_详解Java中的final关键字

    1 修饰属性或者变量 无论属性是基本类型还是引用类型,作用都是变量里面存放的"值"不可变 经常和static关键字一起使用,作为常量 1 基本类型,变量放的是实实在在的值,如1,& ...

  8. python怎么下载图片怎么保存到本地_详解Python下载图片并保存本地的两种方式

    一:使用Python中的urllib类中的urlretrieve()函数,直接从网上下载资源到本地,具体代码: import os,stat import urllib.request img_url ...

  9. python函数定义中参数列表里的参数是_详解Python函数中参数带星号是什么意思

    函数的参数使用除了常规的位置参数和关键字参数外,还支持可变个数的函数参数,这种支持可变个数的参数方法称为参数收集,对应的参数称为收集参数. 一.参数收集的定义 Python的函数支持可变不定数量的参数 ...

最新文章

  1. 为什么清北硕博扎推街道办毫不意外, 反会越来越多?
  2. 通过销售订单领用到成本中心,FI替代实现不同成本中心记账科目不同
  3. VS环境下的makefile编译
  4. teststand调用python模块_TestStand 基本知识[10]--在序列中调用代码模块之--LabVIEW
  5. Jaxb annotation使用
  6. [DELPHI]数据类型
  7. 动手编写操作系统(1):初识Bochs
  8. python转bat_bat 转换为python
  9. u盘 固态硬盘 读写速度测试软件,超级U盘/SSD读写可靠性(扩容)测试工具urwtest v1.8...
  10. live share_带Live Share的Visual Studio Code中的实时编码入门
  11. Linux中history命令增加时间显示
  12. 什么是指标体系?怎么搭建一个完美的指标体系? by彭文华
  13. DBeaver打开sql文件中文乱码问题解决
  14. IdentityServer4(七):Consent授权页支持
  15. 电脑键盘部分按键失灵_电脑键盘失灵怎么办 三步教你解决问题【图文】
  16. gvim中利用录制宏产生连续数字
  17. Centos7 修改SSH端口,以及修改密码
  18. pdf上的文字和图片内容怎么编辑
  19. 基于opencv的车辆检测python_使用OpenCV和Python构建自己的车辆检测模型
  20. 网络交易监督管理办法

热门文章

  1. 底层I/O性能大PK:Python/Java被碾压,Rust有望取代C++
  2. 火山引擎智能容器云 veCompass v3.0 重磅发布!
  3. 最“好”的编程语言 PHP 真的无药可救了吗?
  4. 移动电话之父第一个电话打给对手,起底现代移动通信崛起之路!
  5. 酷炫的VR选座,阿里大麦背后的技术堪称豪华
  6. 华为电脑终于又能搭载正版 Windows 系统了!
  7. Java 异常处理的 20 个最佳实践,你知道几个?| CSDN 博文精选
  8. 最好的 Windows C++ 编译器!
  9. 腾讯专利仅次谷歌;​苹果或将 iPhone 订单转给和硕;​Uber 接受比特币支付 | 极客头条...
  10. 站在物联网风口,如何抢滩千亿级智能家居市场?