既然PyPy的速度是CPython的6.3倍,難道我不應該放棄CPython轉用PyPy?

人見人愛的土豆發表於2013-10-14

chhantyal 在 SO 上的提問:

“我已經聽說了很多關於Pypy 的專案。他們宣稱在自己的網站上的處理速度是CPython 的6.3 倍。

任何時候我們討論起像Python 一樣的動態程式語言,速度總是最重要的考量之一。PyPy的網站宣稱解決了速度的問題,比傳統CPython 的處理速度快6.3倍。

第二個問題是並行機制,傳說中那個聲名狼藉的全域性直譯器鎖。 針對這個問題, PyPy 聲稱自己提供了一個沒有那麼依賴全域性直譯器鎖的Python。

如果PyPy 真的能解決這些問題,那到底是什麼阻止了Pypy 的推廣應用呢? 換句話說,是什麼阻止了像我一樣的Python 程式設計師去放棄當前使用的Python版本而轉投PyPy 的懷抱呢?”

 

Veedrac 的最佳答覆:

就像其他人提到的,PyPy有很弱的C 語言擴充套件性。它支援C語言擴充套件,但是比Python本身的速度還慢。因此,很多模組本身就要求使用CPython.。

CPython 上的Numpy的資料處理性非常好,滿足了那些既要求速度又大量使用Pandas, SciPy等資料分析任務的庫的人。

所以,Pypy 要麼不支援或者很弱支援C語言擴充套件,要麼減慢了那些資料處理的速度。完全無法比擬既可以滿足速度要求又簡單易用的CPyhon。

第二點,Python 3的支援在現階段還是實驗期。那些使用最新版本的Python新功能的人,現在應該還不願意扔掉那些還在新鮮期的新奇功能。

第三點,PyPy 並不是真正的指令碼快,而大多數使用Python 的人就是在用指令碼。這些指令碼就是一些簡短的程式。 PyPy 的最大優點是它針對長時間執行的簡單數字處理的即時 (JIT) 編譯器。直白地說, PyPy的先編譯處理時間比CPython長的多。

第四點,惰性。轉移到PyPy需要重新裝備機器。這對很多使用者或者使用機構來說,都是太多的額外工作了。

於我來說,以上就是主要影響我的原因。

相關文章