內容字號:默認大號超大號

段落設置:取消段首縮進段首縮進

字體設置:切換到微軟雅黑切換到宋體

業界軟件
手機數碼
電腦學院
測評圖賞
視頻游戲
原創直播
AI5G
蘋果微軟
iPhone之家Win10之家
精準搜索請嘗試:精確搜索

驚喜優化!Fedora 32系統Python腳本運行速度可提高27%

2020/1/14 9:00:49來源:開源中國作者:局長責編:騎士評論:

計劃于 4 月發布的 Fedora 32 有望給 Python 開發者帶來驚喜。Fedora 項目的變更介紹頁面顯示,在構建 Python 解釋器時,開發團隊添加了-fno-semantic-interposition編譯器/鏈接器標志(compiler/linker flag),它將會顯著提升性能,當然具體的性能改進效果取決于工作負載,官方提供的數據是最多可以提升 27%。

諸如 nbody,scimark,django,光線跟蹤之類的測試用例提升了 20% 至 27% 的性能,而通過 PyPerformance 測得的性能提高了 5% 至 20%。

而這給用戶帶來的變化是他們將不再能夠使用 LD_PRELOAD 覆蓋來自 libpython 的符號,不過官方認為這是提升速度的不錯的折衷方案。

根據 GCC 關于語義插入(semantic interposition)標記的文檔,“某些對象格式,例如 ELF,允許動態鏈接器插入符號。這意味著對于從 DSO 導出的符號,編譯器無法按預期在執行過程中傳播、內聯和其他優化,但相關的函數或變量會有變化。盡管該功能很有用,例如,通過調試實現重寫內存分配功能,但這在代碼質量方面是昂貴的。使用-fno-semantic-interposition,編譯器假定如果函數發生插入的情況,則覆蓋函數將具有完全相同的語義(和副作用)。類似的,如果變量發生插入的情況,則變量的構造函數也將相同。該標志對顯式聲明為內聯的函數無效,對弱聲明的符號同樣無效?!?/p>

據了解,這些改進最初是針對 Fedora 32 開發的,Fedora 項目的開發人員當時在研究靜態鏈接 Python 的方案以提高性能。后來由于社區的反饋,他們縮小了范圍,只希望優化 Fedora 32 中的 Python,并將其限制為使用-fno-semantic-interposition編譯器標志來構建 Python。

相關文章

關鍵詞:Python,Fedora,Linux

IT之家,軟媒旗下科技門戶網站 - 愛科技,愛這里。

Copyright (C)RuanMei.com, All Rights Reserved.

軟媒公司版權所有    

北京快乐8官网