簡體   English   中英

凍結的Python二進制文件會訪問本地解釋器和全局解釋器鎖(GIL)嗎?

[英]Would a frozen Python binary access the local interpreter and Global Interpreter Lock (GIL)?

我正在Linux多核計算機上工作,在該計算機上,我只是使用命令行中的解釋器(實際上只是“ python script.py”)多次調用了相同的Python腳本。 我發現即使我在機器資源中也很熟練,性能也比單個呼叫慢得多。 我認為這是因為實例通過全局解釋器鎖(GIL)共享了解釋器-即無論如何,多個實例最終都將運行“單核”。 如果我對腳本的凍結的Python二進制版本( http://wiki.python.org/moin/Freeze )做同樣的事情,那還會發生嗎? 我相信不是,因為二進制文件“帶有自己的解釋器”嗎?

你的信念是錯誤的。 GIL是全局過程的。 單獨的CPython進程不共享任何東西,甚至不共享GIL。 只有同一進程中的線程競爭同一全局鎖。 您看到的性能下降還有另一個原因。 是的,規則對於凍結的可執行文件IIUC是相同的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM