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

淺談python編譯過程

系統 2243 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條評論
主站蜘蛛池模板: 昌吉市| 文登市| 甘孜县| 武宁县| 三原县| 平湖市| 马山县| 库车县| 通州区| 大厂| 宜州市| 汉寿县| 开鲁县| 屏南县| 苏尼特左旗| 肥西县| 金阳县| 龙海市| 应城市| 宁城县| 滕州市| 苍溪县| 大埔区| 灌南县| 万安县| 思茅市| 墨竹工卡县| 正蓝旗| 江安县| 贵阳市| 通海县| 邻水| 奉新县| 黄骅市| 澎湖县| 大化| 兴文县| 鄂伦春自治旗| 增城市| 孝义市| 自贡市|