詳解Python中__str__和__repr__方法的區別

來源:互聯網
上載者:User
對我當前工程進行全部測試需要花費不少時間。既然有 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/pyLOG=$(pwd)/test.logTARGET=$(hg root)SHADOW=/dev/shm/shadow/$TARGET date > $LOGmkdir -p $SHADOW cd $SHADOWrsync --update --delete --exclude=".*" --exclude=ENV --archive $TARGET ./.. if [ ! -d ENV ]then virtualenv ENVfi. ENV/bin/activate cd $WORKpython setup.py develop >> $LOGnosetests $* | tee -a $LOGexit ${PIPESTATUS[0]}

我只要重複同步到/dev/shm目錄,設定測試環境(virtualenv and python setup.PY)和運行測試(nosetests)。

在tmpfs檔案夾裡仍可用命令列運行單個測試。也可以把這個從你的IDE中踢走,但你會失去你的測試回合和調試的能力。如我之前所說,我現在不需要這些。

我希望我對tmpfs的這個變通使用能協助你建立一個更快速的開發環境,而無須遭受所有的指令碼麻煩。

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.