2013-07-03 69 views
5

我是Python的新手,我寫了幾個命令行腳本來做一些計算。在Perl中,我記得使用PersistantPerl來持續運行Perl腳本來加速Perl腳本。如何持久地運行Python腳本?

可以把它看成像FastCGI,但是對於命令行腳本。 PersistantPerl總是保留一個運行後臺的解釋器的副本,所以每次腳本運行時都會有啓動懲罰。

Python中是否存在等價的工具,或者是否存在其他策略來避免爲頻繁運行相同的Python腳本而付出啓動代價。

PersistenPerl

UPDATE:

似乎有人在用同樣的想法都有所涉獵:

Reducing the Python startup time

但它看起來更像是一個黑客不是一個完整的解決方案。 任何可以做到這一點的模塊?

+0

你測量 「啓動懲罰」?它會影響你的工作嗎? – 2013-07-03 10:10:51

+0

我從來沒有聽說過Python解釋器的這種特性;可能這種影響並不足以證明這一努力是正確的。無論如何,今天的操作系統都會將可執行文件的二進制文件保存在內存中(除非你沒有足夠的內存)。 – Alfe

回答

3

有一件事情可能比保持Python解釋器運行(如果甚至可能的話)更有影響力,那就是確保Python不必每次運行它時都要編譯腳本。

最簡單的方法是獲得一個小的啓動腳本,即import是您的實際腳本。導入的腳本保存爲預編譯的.pyc文件,因此可以更快地重新運行(就啓動時間而言)。

+0

聽起來很有趣。我會試一試。 – GeneQ

+0

@GeneQ試試[這個問題](http://stackoverflow.com/questions/12339671/how-to-compile-python-script-to-binary-executable)了。請發佈結果。我也想知道哪個是目前最好的方法。我會問同樣的問題。 –