Python和Cython有什麼關係?
阿新 • • 發佈:2018-11-11
Cython是Python的一個超集,結合了Python的易用性和原生程式碼的速度,可以編譯成C語言,產生的效能提升可以從幾個百分點到幾個數量級,具體取決於手頭的任務。
使用Cython,你可以避開Python的許多原生限制,或者完全超越Python,而無需放棄Python的簡便性和便捷性。
Python程式碼可以直接呼叫C模組。這些C模組可以是通用的C庫或專門為Python工作的庫。Cython生成第二種型別的模組:與Python內部對話的C庫,可以與現有的Python程式碼繫結在一起。
Cython程式碼在設計上看起來很像Python程式碼。如果你給Cython編譯器提供了一個Python程式,它將會按原樣接受它,但是Cython的原生加速器都不會起作用。但是如果你用Cython的特殊語法來修飾Python程式碼,那麼Cython就可以用快速的C代替慢的Python物件。
請注意,Cython的方法是漸進的。這意味著開發人員可以從現有的Python應用程式開始,通過對程式碼立刻進行更改來加快速度,而不是從頭開始重寫整個應用程式。
這種方法通常與軟體效能問題的性質相吻合。在大多數程式中,絕大多數CPU密集型程式碼都集中在一些熱點上,也就是帕累託原則的一個版本,也被稱為“80/20”規則。因此,Python應用程式中的大部分程式碼不需要進行效能優化,只需要幾個關鍵部分。你可以逐漸將這些熱點轉換為Cython,從而獲得你最需要的效能提升。程式的其餘部分可以保留在Python中,以方便開發人員。