我想知道是否可靠將我的python應用程序遷移到PYPY。我需要改進許多python代碼的性能,以及我用於科學監控的基於扭曲的模塊,並且我正在考慮採用未來的方法。
Python基金會不會顯示CPython的改進性能意圖,無論是使用某種模型的pypy或Cython。
有沒有必要重新發明輪子,但圭多似乎不介意python用戶的需求。在這種情況下,很難採取一個方向,採取什麼樣的決定?
...而且我不想使用其他編程語言。
PD:其實我使用的是2.7版本...
編輯:我的代碼已經過多次配置和測試,否則我不會問...感謝您回答弗朗西斯,無論如何...
已編輯:我想知道更多關於此的意見...將python代碼遷移到pypy或將來可靠的更多
3
A
回答
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相關的活動有關。這可能不是你需要調整的應用程序,而是它運行的機器。
相關問題
- 1. 將Python代碼遷移到NodeJS
- 2. 將Java解密代碼遷移到Golang
- 3. Terribly Slow將Objc遷移到swift代碼
- 4. 將tkinter代碼遷移到pyqt
- 5. 將xsl代碼遷移到asp.net/c#
- 6. 將php代碼從5.2遷移到5.3
- 7. 將代碼從AFNetworking 2遷移到3
- 8. 將代碼從JDK 1.5遷移到1.6
- 9. 將Quartz代碼遷移到2.2.x
- 10. 將代碼從C++遷移到C#
- 11. 將PHP代碼從MSSQL遷移到MySQL
- 12. 自動遷移或基於代碼的遷移?哪個更好?
- 13. 如何將Windows代碼視頻遷移到更好的東西?
- 14. 將代碼從Github遷移到Google代碼返回Github
- 15. 將代碼從svn遷移到Google代碼
- 16. 將delphi代碼遷移到c#,char代碼
- 17. Django South - 從Python代碼遷移代碼
- 18. EF5代碼第一多到遷移
- 19. 將OpenGL代碼從C++移植到Python
- 20. 將舊的Delphi 7代碼遷移到Delphi XE - QForms.dcu未找到
- 21. C2DM到GCM代碼遷移
- 22. PHP到ASP.NET代碼遷移
- 23. 將Python Dict遷移到Java和JSON
- 24. 將Github wiki遷移或導出到Gitlab
- 25. EF代碼遷移 - 將字符串遷移到十進制字段(v。4.3.1.0)
- 26. 將密碼遷移到設計
- 27. 將Laravel密碼遷移到Ruby
- 28. 將HTTP推送技術「可靠的安全配置文件」遷移到Azure
- 29. 將Cassandra .5中的C#代碼遷移到.6
- 30. 將代碼遷移到GL20圖形奇怪的閃爍行爲
爲了提高關鍵部件的性能,您應該考慮直接使用Cython或綁定優化的C代碼。 –
你知道你的代碼不必被「遷移」到PyPy的權利? PyPy實現Python語言,就像CPython一樣,不像Cython – fijal