2013-02-06 49 views
3


我想知道是否可靠將我的python應用程序遷移到PYPY。我需要改進許多python代碼的性能,以及我用於科學監控的基於扭曲的模塊,並且我正在考慮採用未來的方法。

Python基金會不會顯示CPython的改進性能意圖,無論是使用某種模型的pypy或Cython。

有沒有必要重新發明輪子,但圭多似乎不介意python用戶的需求。在這種情況下,很難採取一個方向,採取什麼樣的決定?

...而且我不想使用其他編程語言。

PD:其實我使用的是2.7版本...

編輯:我的代碼已經過多次配置和測試,否則我不會問...感謝您回答弗朗西斯,無論如何...

已編輯:我想知道更多關於此的意見...將python代碼遷移到pypy或將來可靠的更多

+1

爲了提高關鍵部件的性能,您應該考慮直接使用Cython或綁定優化的C代碼。 –

+0

你知道你的代碼不必被「遷移」到PyPy的權利? PyPy實現Python語言,就像CPython一樣,不像Cython – fijal

回答

3

我覺得你對CPython有錯誤的印象。 CPython是參考實現,並且將始終具有最新的Python功能和最新版本的Python。性能非常重要,CPython性能在每次次要版本中都有顯着提高。 CPython絕對是當今可用實現中最「可靠」的。但是,CPython的一個非常重要的特性是橋接到C環境,即運行用C編寫的包裝C庫或包含精細調整的C代碼的模塊,該代碼可以實現手動內存管理。使用C模塊會限制您可以執行的異常運行時間的數量。例如。如果您使用任何用C語言編寫的Python模塊(如果它全部運行的話),PyPy會有顯着的性能損失!

你可以嘗試PyPy,Cython,IronPython,Jython等,看看它是否適用於你,但如果你使用任何C模塊,期望會失望。

你應該怎麼做,而不是profile your code,並確定任何熱點或內部循環,並優化它們。由於你有一個IO驅動的應用程序,我強烈懷疑你的「緩慢」的大部分與你的Python實現無關,而是與IO相關的活動有關。這可能不是你需要調整的應用程序,而是它運行的機器。

+0

代碼已經過多次配置和測試,否則我不會問...感謝您的回答。 – Goku

+0

您的應用程序在做什麼與IO無關會是瓶頸?也許你需要一個不同的設計? –

+0

我正在爲此工作,謝謝@FrancisAvila – Goku