91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python語言的3個主要缺點及其解決方法

發布時間:2021-09-08 18:45:59 來源:億速云 閱讀:285 作者:chen 欄目:大數據

本篇內容主要講解“Python語言的3個主要缺點及其解決方法”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“Python語言的3個主要缺點及其解決方法”吧!

缺點一:Python 多線程和速度

Python 整體性能緩慢,有限的線程和多處理能力是其未來發展的主要障礙。

Python長期以來一直重視編程的易用性而不是運行時的速度。當通過使用C或C++編寫的高速外部庫(如Numpy和Numba)在Python中完成如此多的性能密集型任務時,你會發現Python重視編程的易用性也是一種不錯的選擇。但是盡管如此,Python的開箱即用的性能速度依然落后于其他語言,比如說具有同樣簡單語法的Nim和Julia,卻可以被編譯為機器代碼,具有更高的性能優勢。

Python無法全面利用多核處理器是其長久以來的問題,它確實具有線程功能,但它的線程功能是局限于單個核心的。雖然Python可以使用多進程,但是調度和同步這些子進程的結果并不總是有效Python語言的3個主要缺點及其解決方法

解決方案

目前沒有單一,自上而下的整體解決方案來解決Python的性能問題,不過我們有一系列加速Python的舉措。比如說:

  1. 使用PyPy解釋器替代官方解釋器,PyPy能夠將Python代碼編譯成機器代碼,它在僅僅使用Python自帶的模塊的代碼中效果最好,不過現在也可以適用于如numpy這樣的流行的庫,但是其始終只適合于長期運行的服務,而不是能打包帶走的應用程序。

  2. Cython,Cython能將Python+C混合編碼的.pyx腳本轉化為C代碼。該項目最初是為科學和數值計算而設計的,但它可以在大多數情況下使用。

  3. Numba,Numba和Cython類似,主要用于科學計算。

  4. Mypyc,是現在仍在開發的項目,它會將用mypyc類型裝飾器裝飾的代碼轉化為C.

  5. 優化的Python發行版,比如英特爾針對特殊的處理器和其特殊的數學運算所開發的專門編譯版本。不過盡管它能夠顯著加快部分運算速度,但不能加快整體的運算速度。

如果你是高手,你還能嘗試擺脫一下GIL(全局解釋器鎖)Python語言的3個主要缺點及其解決方法 之所以Python的多線程是假的,就是因為GIL的存在:它用來保證Python同時只能有一個線程運行。因此從理論上來講,如果你擺脫了GIL,就能進行多線程運算,可以提高性能。

還有一個正在進行的項目能夠解決許多速度提升的問題,即重構Python內部C接口的實現,一個不混亂的接口可以使得許多性能的改進成為可能。

缺點二:Python 打包和可執行文件

即使在Python誕生30年后,Python依然沒有很好的方法來生成可執行文件(exe程序等)Python語言的3個主要缺點及其解決方法我們只能通過第三方工具解決。而且用起來比較麻煩。

解決方案

  1. pyinstaller 可以打包使用許多如numpy這樣的庫,但是它必須和這些庫保持版本一致,這可太難受了。而且它生成的程序比較大,因為把import語句里所有的內容都封裝在一起了。

  2. 還有種方法也是正在研究中,那就是PyOxidizer項目使用Rust語言生成嵌入Python的二進制文件,不過距離成為真正的解決方案還有一段發展路程要走。

 

缺點三:Python 包管理、項目管理

當你想將一個本地比較復雜的Python工程移植到服務器上的時候,你就知道Python項目管理是有多蛋疼了Python語言的3個主要缺點及其解決方法你需要不斷地安裝項目依賴,依賴的依賴可能還有依賴,就像俄羅斯俄羅斯套娃一樣,恨不得直接把鍵盤吃了。

解決方案

  1. 這種問題,當然需要Python的開發團隊出手了,需要他們提供一套優雅的遷移工具。

  2. 不過他們已經朝這個方向前進幾步了, 根據PEP 518,Python的構建依賴項被合并為pyproject.toml文件格式(取代了setup.py, requirements.txt, setup.cfg, MANIFEST.in 以及最新加入的Pipfile)

  3. 當然也不是沒有辦法,使用poetry依賴管理工具,它能夠很方便地將你所需要的依賴打包在一起。

到此,相信大家對“Python語言的3個主要缺點及其解決方法”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

子洲县| 万盛区| 大足县| 凌源市| 图片| 平谷区| 吉安市| 昆山市| 大石桥市| 隆子县| 黎川县| 临江市| 尼木县| 新安县| 澄城县| 新泰市| 班戈县| 镇平县| 武威市| 兴安盟| 贵港市| 嘉禾县| 陇南市| 松原市| 读书| 陵水| 同仁县| 巴塘县| 青川县| 社旗县| 平阴县| 乌拉特中旗| 鹰潭市| 四子王旗| 婺源县| 宣武区| 扎囊县| 息烽县| 烟台市| 云和县| 得荣县|