詳解Python中__str__和__repr__方法的區(qū)別
對我當(dāng)前工程進(jìn)行全部測試需要花費(fèi)不少時間。既然有 26 GB 空閑內(nèi)存,為何不讓其發(fā)揮余熱呢? tmpfs 可以通過把文件系統(tǒng)保存在大內(nèi)存中來加速測試的執(zhí)行效率。
但優(yōu)點(diǎn)也是缺點(diǎn),tmpfs 只把結(jié)果保存在內(nèi)存中,所以你必須自己編寫腳本來把結(jié)果回寫到磁盤上進(jìn)行保留。而且這些腳本必須良好書寫和執(zhí)行,否則就要失去部分或全部的工作成果了。
一種常見的方法是直接在tmpfs文件夾中工作,然后把工作成果備份到磁盤上的一個文件夾中。當(dāng)您的機(jī)器啟動時你從那個備份文件夾恢復(fù)tmpfs文件夾。啟動之后用cron同步tmpfs文件夾和磁盤文件夾。
我發(fā)現(xiàn)這個設(shè)置有點(diǎn)復(fù)雜容易出錯。在啟動的時候,或者對于crom,我從沒有真正的相信?,F(xiàn)在我用一種簡單得多的設(shè)置,根本不用cron。
在我的機(jī)器上運(yùn)行一個單項測試,使用IDE并發(fā)布于web服務(wù)器,其性能通常是合理的,只有運(yùn)行全部測試需要許多時間。
我發(fā)現(xiàn)最佳之處是在磁盤上設(shè)置一個workspace,與/dev/shmand目錄下運(yùn)行所有測試的tmpfs同步。這或多或少使我的設(shè)置無需改變,并消除了可能松散的工作,這些僅僅是因?yàn)槲以谡_設(shè)置方面太垃圾了。
性能提升的結(jié)果是合理的:
$ nosetests && run_tests.py ........................................................................................................................................................................................................................................................ ---------------------------------------------------------------------- Ran 248 tests in 107.070s OK ........................................................................................................................................................................................................................................................ ---------------------------------------------------------------------- Ran 248 tests in 19.423s OK
現(xiàn)在比原來提高了 5 倍速度。
使用 python 來進(jìn)行設(shè)置非常簡單:
#!/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]}
我只要重復(fù)同步到/dev/shm目錄,設(shè)置測試環(huán)境(virtualenv and python setup.PY)和運(yùn)行測試(nosetests)。
在tmpfs文件夾里仍可用命令行運(yùn)行單個測試。也可以把這個從你的IDE中踢走,但你會失去你的測試運(yùn)行和調(diào)試的能力。如我之前所說,我現(xiàn)在不需要這些。
我希望我對tmpfs的這個變通使用能幫助你建立一個更快速的開發(fā)環(huán)境,而無須遭受所有的腳本麻煩。
相關(guān)文章
Python中l(wèi)ambda的用法及其與def的區(qū)別解析
這篇文章主要介紹了Python中l(wèi)ambda的用法及其與def的區(qū)別解析,需要的朋友可以參考下2014-07-07
pycharm打包python項目為exe執(zhí)行文件的實(shí)例代碼
這篇文章主要介紹了pycharm打包python項目為exe執(zhí)行文件,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-07-07
pytorch動態(tài)神經(jīng)網(wǎng)絡(luò)(擬合)實(shí)現(xiàn)
這篇文章主要介紹了pytorch動態(tài)神經(jīng)網(wǎng)絡(luò)(擬合)實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03
Python中pandas刪除數(shù)據(jù)表中的重復(fù)值的實(shí)現(xiàn)
本文介紹pandas的drop_duplicates()方法刪除數(shù)據(jù)表重復(fù)值,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-09-09
Python3實(shí)現(xiàn)建造者模式的示例代碼
這篇文章主要介紹了Python3 實(shí)現(xiàn)建造者模式的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06
基于python實(shí)現(xiàn)模擬數(shù)據(jù)結(jié)構(gòu)模型
這篇文章主要介紹了基于python實(shí)現(xiàn)模擬數(shù)據(jù)結(jié)構(gòu)模型,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-06-06

