日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

淺談python編譯過程

系統 2264 0

python是一門解釋性語言

什么是解釋性語言?學過C語言的同學都知道C語言是一門編譯性語言,那么這里我們就要清楚的了解 解釋性語言 編譯性語言 有什么區別。

編譯性語言:
只須編譯一次就可以把源代碼編譯成機器語言,后面的執行無須重新編譯,直接使用之前編譯的結果即可;因此其執行效率比較高。例如:C語言、C++等

解釋性語言:
源代碼不能直接被編譯為機器語言,而是先編譯成中間代碼,再由解釋器對中間代碼進行解釋運行;執行效率較慢。例如:python、JS等

這也就是為什么人們常說C語言底層語言(距離內核近),python是高級語言(距離內核遠)

python運行效率慢是python最大的缺點,當然目前在實際項目中會有很多優化的方案,可以提升python的效率。這個后期咱們再談。

python的運行過程

根據解釋性語言的性質,系統在讀取python代碼時,往往是如下步驟:

編譯
m.py
m.pyc
PVM運行

m.py(源代碼)——> m.pyc(字節碼)——> PVM(虛擬機運行)

當python運行時,會將源代碼翻譯為字節碼,之后將字節碼轉發至虛擬機中即可運行。

而其中的字節碼在內存中的PyCodeObject中,運行結束后,python將PyCodeObject寫入到.pyc文件中(python2中是.pyc,python3 是_pycache__的子目錄中),.pyc文件其實是PyCodeObject的一種持久化保存方式(通常與源代碼在統一目錄下).

.pyc文件會提高代碼的執行速度。
下一次運行源代碼時,系統會識別源代碼和.pyc文件的最后 修改時間是否相同 ,相同即可直接運行字節碼;不相同則廢棄原字節碼, 重新由源代碼編譯為新的字節碼


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 大丰市| 扎囊县| 威海市| 陈巴尔虎旗| 皋兰县| 阿城市| 大宁县| 班玛县| 札达县| 宝坻区| 徐闻县| 藁城市| 武山县| 宣恩县| 永仁县| 绍兴县| 托克逊县| 中超| 清苑县| 南雄市| 星座| 淳安县| 高唐县| 乐安县| 万年县| 疏勒县| 肥东县| 原阳县| 辉县市| 长葛市| 浑源县| 全椒县| 大田县| 泰和县| 泉州市| 仪陇县| 大同县| 凤山县| 禄劝| 夏津县| 锦屏县|