Python 虛擬機器
Python 是⼀一種半編譯半解釋型運⾏行環境。⾸首先,它會在模組 "載⼊入" 時將原始碼編譯成位元組碼 (Byte
Code)。⽽而後,這些位元組碼會被虛擬機器在⼀一個 "巨⼤大" 的核⼼心函式⾥裡解釋執⾏行。這是導致 Python 性
能較低的重要原因,好在現在有了內建 Just-in-time ⼆二次編譯器的 PyPy 可供選擇。
當虛擬機器開始運⾏行時,它通過初始化函式完成整個運⾏行環境設定:
• 建立直譯器和主執行緒狀態物件,這是整個程式的根物件。
• 初始化內建型別。數字、列表等型別都有專⻔門的快取策略需要處理。
• 建立 __builtin__ 模組,該模組持有所有內建型別和函式。
• 建立 sys 模組,其中包含了 sys.path、modules 等重要的執行期資訊。
• 初始化 import 機制。
• 初始化內建 Exception。
• 建立 __main__ 模組,準備運⾏行所需的名字空間。
• 通過 site.py 將 site-packages 中的第三⽅方擴充套件庫新增到搜尋路徑列表。
• 執⾏行⼊入⼝口 py ⽂檔案。執⾏行前會將 __main__.__dict__ 作為名字空間傳遞進去。
• 程式執⾏行結束。
• 執⾏行清理操作,包括調⽤用退出函式,GC 清理現場,釋放所有模組等。
• 終⽌止程式。
Python 原始碼是個寶庫,其中有⼤大量的程式設計正規化和技巧可供借鑑,尤其是對記憶體的管理分配。個⼈人
建議有 C 基礎的兄弟,在閒暇時翻看⼀一⼆二。
Code)。⽽而後,這些位元組碼會被虛擬機器在⼀一個 "巨⼤大" 的核⼼心函式⾥裡解釋執⾏行。這是導致 Python 性
能較低的重要原因,好在現在有了內建 Just-in-time ⼆二次編譯器的 PyPy 可供選擇。
當虛擬機器開始運⾏行時,它通過初始化函式完成整個運⾏行環境設定:
• 建立直譯器和主執行緒狀態物件,這是整個程式的根物件。
• 初始化內建型別。數字、列表等型別都有專⻔門的快取策略需要處理。
• 建立 __builtin__ 模組,該模組持有所有內建型別和函式。
• 建立 sys 模組,其中包含了 sys.path、modules 等重要的執行期資訊。
• 初始化 import 機制。
• 初始化內建 Exception。
• 建立 __main__ 模組,準備運⾏行所需的名字空間。
• 通過 site.py 將 site-packages 中的第三⽅方擴充套件庫新增到搜尋路徑列表。
• 執⾏行⼊入⼝口 py ⽂檔案。執⾏行前會將 __main__.__dict__ 作為名字空間傳遞進去。
• 程式執⾏行結束。
• 執⾏行清理操作,包括調⽤用退出函式,GC 清理現場,釋放所有模組等。
• 終⽌止程式。
Python 原始碼是個寶庫,其中有⼤大量的程式設計正規化和技巧可供借鑑,尤其是對記憶體的管理分配。個⼈人
建議有 C 基礎的兄弟,在閒暇時翻看⼀一⼆二。
相關文章
- Dalvik虛擬機器、Java虛擬機器與ART虛擬機器虛擬機Java
- java虛擬機器和Dalvik虛擬機器Java虛擬機
- Android 虛擬機器 Vs Java 虛擬機器Android虛擬機Java
- 憑什麼別的虛擬機器叫虛擬機器,Python的叫直譯器?虛擬機Python
- 虛擬機器虛擬機
- 連線虛擬機器oracle 和虛擬機器KEY虛擬機Oracle
- 虛擬機器(三)虛擬機器配置靜態Ip虛擬機
- PD虛擬機器 18 for Mac(Mac虛擬機器軟體)虛擬機Mac
- JVM 虛擬機器JVM虛擬機
- JVM虛擬機器JVM虛擬機
- Neo 虛擬機器虛擬機
- VMware虛擬機器虛擬機
- 虛擬機器arm虛擬環境搭建虛擬機
- VMware虛擬機器如何設定使主機和虛擬機器不同IP虛擬機
- 深入理解虛擬機器之虛擬機器類載入機制虛擬機
- Python 如何實現以太坊虛擬機器Python虛擬機
- 深入理解 python 虛擬機器:原來虛擬機器是這麼實現閉包的Python虛擬機
- 【譯】使用 Python 編寫虛擬機器直譯器Python虛擬機
- 虛擬機器突然沒網了,虛擬機器突然滑鼠失靈虛擬機
- vmware克隆虛擬機器centos6.5,虛擬機器從新配置虛擬機CentOS
- 從ubuntu虛擬機器外部訪問虛擬機器內部資訊Ubuntu虛擬機
- 【虛擬機器】Windows(x86)上部署ARM虛擬機器(Ubuntu)虛擬機WindowsUbuntu
- xen安裝半虛擬化虛擬機器虛擬機
- 虛擬機器可以ping同宿主機,宿主機ping不通虛擬機器虛擬機
- JVM 虛擬機器 GCJVM虛擬機GC
- Java虛擬機器(JVM)Java虛擬機JVM
- 虛擬機器的概念虛擬機
- mac 裝虛擬機器Mac虛擬機
- 虛擬機器的克隆虛擬機
- kvm虛擬機器快照虛擬機
- 求助,虛擬機器崩了。。虛擬機
- Java虛擬機器(轉)Java虛擬機
- 安裝虛擬機器虛擬機
- 虛擬機器的搭建虛擬機
- xshell能ping通虛擬機器,不能連線虛擬機器虛擬機
- 虛擬機器軟體Parallels Desktop 19 for Mac虛擬機器 19.0.0虛擬機ParallelMac
- VMware虛擬機器優化,提高虛擬機器執行速度的方法?虛擬機優化
- 虛擬機器入門二,虛擬機器的三種網路模式虛擬機模式