床長人工智慧教程免費PDF文件50-11

CPython、Jython和IronPython都是透過同樣的方式實現Python語言的,即透過把原始碼編譯為位元組碼,然後在適合的虛擬機器上執行這些位元組碼。然而,其他的系統,包括Psyco即時編譯器以及Shedskin C++轉換器,則試著優化了基本執行模組。這些系統並不是現階段學習Python所必備知識,但是簡要地瞭解這些執行模組可以幫助你更輕鬆地掌握這些模組。本人只是分享一些床長人工智慧教程相關的免費pdf文件而已,並非床長人工智慧教程的收費文章。尊重版權,支援原創。

Psyco實時編譯器

Psyco系統並不是Python的另一種實現方式,而是一個擴充套件位元組碼執行模組的元件,可以讓程式執行得更快。Psyco是一個PVM的增強工具,這個工具收集並使用資訊,在程式執行時,可以將部分程式的位元組碼轉換成底層的真正的二進位制機器程式碼,從而實現更快的執行速度。在開發的過程中,Psyco無需程式碼的修改或獨立的編譯步驟即可完成這一轉換。

概括地講,當程式執行時,Psyco收集了正在傳遞過程中的物件的類別資訊,這些資訊可以用來裁剪物件的型別,從而生成高效的機器程式碼。機器程式碼一旦生成後,就替代了對應的原始位元組碼,從而加快程式的整體執行速度。實際的效果就是,透過使用Psyco,使程式在整個執行過程中執行得更快。在理想的情況下,一些透過Psyco最佳化的Python程式碼的執行速度可以像編譯好的C程式碼一樣快。

因為位元組碼的轉換與程式運行同時發生,所以Pysco往往被看做是一個即時編譯器(JIT)。Pysco實際上與一些讀者曾經在Java語言中瞭解的JIT編譯器稍有不同。實際上,Psyco是一個專有的JIT編譯器:它生成機器程式碼將資料型別精簡至你程式實際上所使用的型別。例如,如果程式的一部分在不同的時候採用了不同的資料型別,Psyco可以生成不同版本的機器碼用來支援每一個不同的型別組合。

Psyco已經證實能夠大大提高Python程式碼的速度。根據其官方網站介紹,Psyco提供了“2倍至100倍的速度提升,典型值為4x,在沒有改進的Python直譯器和不修改的原始碼基礎上,僅僅依靠動態可載入的C擴充套件模組”。同等重要的是,最顯著的提速是在以純Python寫成的演算法程式碼上實現的。確切地講,是那些為了最佳化往往需要遷移到C的那部分程式碼。使用了Psyco後,這樣的遷移甚至沒有必要了。

Psyco目前還不是標準Python的一部分,你也許需要單獨獲取並安裝它。而且它仍是一個研究專案,所以需要在網上跟蹤它的發展。事實上,寫作本書的時候,儘管Psyco本身仍可以獲得並能夠自動安裝,但這個系統的大部分似乎最終將會被一個更新的專案“PyPy”(一個嘗試用Python程式碼實現Python PVM的專案,能夠像Psyco一樣提供更好的最佳化)融合。

也許Psyco的最大缺點就是它實際上只能夠為Intel x86構架的晶片生成機器程式碼,儘管包括了Windows、Linux以及最新的Mac。

Shedskin C++轉換器

Shedskin是一個引擎系統,它採用了一種不同的Python程式執行方法:它嘗試將Python程式碼變為C++程式碼,然後使用機器中的C++編譯器將得到的C++程式碼編譯為機器程式碼。正是如此,它以一種平臺無關的方式來執行Python程式碼。在編寫本書的時候,Shedskin仍是一個實驗性質的專案,並且它給Python程式施加了一種隱晦的靜態型別約束,而這在一般的Python程式碼中是不常見的,所以我們不再深入瞭解其中的一些細節了。

不過初步結果顯示它具有比標準Python程式碼以及使用Psyco擴充套件後的執行速度更快的潛質,並且它是一個前途光明的專案。

床長人工智慧教程免費PDF文件50-11