詳解Python中__str__和__repr__方法的區(qū)別
對(duì)我當(dāng)前工程進(jìn)行全部測(cè)試需要花費(fèi)不少時(shí)間。既然有 26 GB 空閑內(nèi)存,為何不讓其發(fā)揮余熱呢? tmpfs 可以通過(guò)把文件系統(tǒng)保存在大內(nèi)存中來(lái)加速測(cè)試的執(zhí)行效率。
但優(yōu)點(diǎn)也是缺點(diǎn),tmpfs 只把結(jié)果保存在內(nèi)存中,所以你必須自己編寫(xiě)腳本來(lái)把結(jié)果回寫(xiě)到磁盤上進(jìn)行保留。而且這些腳本必須良好書(shū)寫(xiě)和執(zhí)行,否則就要失去部分或全部的工作成果了。
一種常見(jiàn)的方法是直接在tmpfs文件夾中工作,然后把工作成果備份到磁盤上的一個(gè)文件夾中。當(dāng)您的機(jī)器啟動(dòng)時(shí)你從那個(gè)備份文件夾恢復(fù)tmpfs文件夾。啟動(dòng)之后用cron同步tmpfs文件夾和磁盤文件夾。
我發(fā)現(xiàn)這個(gè)設(shè)置有點(diǎn)復(fù)雜容易出錯(cuò)。在啟動(dòng)的時(shí)候,或者對(duì)于crom,我從沒(méi)有真正的相信?,F(xiàn)在我用一種簡(jiǎn)單得多的設(shè)置,根本不用cron。
在我的機(jī)器上運(yùn)行一個(gè)單項(xiàng)測(cè)試,使用IDE并發(fā)布于web服務(wù)器,其性能通常是合理的,只有運(yùn)行全部測(cè)試需要許多時(shí)間。
我發(fā)現(xiàn)最佳之處是在磁盤上設(shè)置一個(gè)workspace,與/dev/shmand目錄下運(yùn)行所有測(cè)試的tmpfs同步。這或多或少使我的設(shè)置無(wú)需改變,并消除了可能松散的工作,這些僅僅是因?yàn)槲以谡_設(shè)置方面太垃圾了。
性能提升的結(jié)果是合理的:
$ nosetests && run_tests.py ........................................................................................................................................................................................................................................................ ---------------------------------------------------------------------- Ran 248 tests in 107.070s OK ........................................................................................................................................................................................................................................................ ---------------------------------------------------------------------- Ran 248 tests in 19.423s OK
現(xiàn)在比原來(lái)提高了 5 倍速度。
使用 python 來(lái)進(jìn)行設(shè)置非常簡(jiǎn)單:
#!/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è)置測(cè)試環(huán)境(virtualenv and python setup.PY)和運(yùn)行測(cè)試(nosetests)。
在tmpfs文件夾里仍可用命令行運(yùn)行單個(gè)測(cè)試。也可以把這個(gè)從你的IDE中踢走,但你會(huì)失去你的測(cè)試運(yùn)行和調(diào)試的能力。如我之前所說(shuō),我現(xiàn)在不需要這些。
我希望我對(duì)tmpfs的這個(gè)變通使用能幫助你建立一個(gè)更快速的開(kāi)發(fā)環(huán)境,而無(wú)須遭受所有的腳本麻煩。
相關(guān)文章
Python異常處理知識(shí)點(diǎn)總結(jié)
在本篇文章中小編給大家分享了關(guān)于Python異常處理的相關(guān)知識(shí)點(diǎn)以及對(duì)應(yīng)的實(shí)例內(nèi)容,需要的朋友們學(xué)習(xí)下。2019-02-02dpn網(wǎng)絡(luò)的pytorch實(shí)現(xiàn)方式
今天小編就為大家分享一篇dpn網(wǎng)絡(luò)的pytorch實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-01-01Python文件常見(jiàn)操作實(shí)例分析【讀寫(xiě)、遍歷】
這篇文章主要介紹了Python文件常見(jiàn)操作,結(jié)合實(shí)例形式分析Python針對(duì)文件的讀寫(xiě)、遍歷等相關(guān)操作技巧,需要的朋友可以參考下2018-12-12Python爬蟲(chóng)實(shí)戰(zhàn)之使用Scrapy爬取豆瓣圖片
在用Python的urllib和BeautifulSoup寫(xiě)過(guò)了很多爬蟲(chóng)之后,本人決定嘗試著名的Python爬蟲(chóng)框架——Scrapy.本次分享將詳細(xì)講述如何利用Scrapy來(lái)下載豆瓣名人圖片,需要的朋友可以參考下2021-06-06PyQt5打開(kāi)文件對(duì)話框QFileDialog實(shí)例代碼
這篇文章主要介紹了PyQt5打開(kāi)文件對(duì)話框QFileDialog實(shí)例代碼,分享了相關(guān)代碼示例,小編覺(jué)得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-02-02python實(shí)現(xiàn)按長(zhǎng)寬比縮放圖片
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)按長(zhǎng)寬比縮放圖片,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-06-06python mysqldb連接數(shù)據(jù)庫(kù)
今天無(wú)事想弄下python做個(gè)gui開(kāi)發(fā),最近發(fā)布的是python 3k,用到了數(shù)據(jù)庫(kù),通過(guò)搜索發(fā)現(xiàn)有一個(gè)mysqldb這樣的控件,可以使用,就去官方看了下結(jié)果,沒(méi)有2.6以上的版本2009-03-03Python/R語(yǔ)言分別實(shí)現(xiàn)斐波那契數(shù)列的示例詳解
這篇文章將通過(guò)兩個(gè)小問(wèn)題:年齡計(jì)算、斐波那契數(shù)列,帶領(lǐng)大家深入淺出的理解兩種語(yǔ)言的基本語(yǔ)法,并用以實(shí)際場(chǎng)景,需要的可以參考一下2022-03-03