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

溫馨提示×

溫馨提示×

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

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

怎么加快Python應用的啟動時間

發布時間:2021-10-18 15:50:21 來源:億速云 閱讀:154 作者:小新 欄目:編程語言

這篇文章將為大家詳細講解有關怎么加快Python應用的啟動時間,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

我聽說pipenv9.0.2已經發布,啟動時間有了很大的改進。

我很快就試了一下,但我覺得并不快。所以我用Python3.7的新特性來研究它。

在本文中,我將介紹該特性以及如何使用它。

啟動時間≒導入時間

例如,pipenv -h 的執行時間比顯示幫助消息的時間長得多。

一般來說,當應用程序啟動時,會有一些啟動過程,比如加載環境變量或配置文件。

對于Python應用程序,導入模塊占用了大部分啟動時間。例如,pipenv --version 花費了大約800ms,而import pipenv 花費了700ms。

怎么加快Python應用的啟動時間

顯示模塊的導入時間

Python 3.7有新的特性來顯示導入模塊的時間。

這個特性是通過 -X importtime 選項或 PYTHONPROFILEIMPORTTIM 環境變量來啟用的。

例如,您可以利用以下命令來測試pipenv的導入時間:

怎么加快Python應用的啟動時間

怎么加快Python應用的啟動時間

這里是一個pipenv --version輸出結果的例子 。

研究導入時間

在輸出的最后面,你會看到這些行:

怎么加快Python應用的啟動時間

在最后一行,579479表示 import pipenv 需要579479us。

在導入pipenv的同時,還導入了許多其他模塊。從上面的示例中,您可以看到 pipenv 導入了pipenv.cli。子導入以2個空格縮進。

再看最后一行。507表示運行pipenv模塊時只需要507us。579479-507=578972us用于子導入。

找出緩慢的部分

我們來從輸出中找到緩慢子樹。我選取了幾行。

怎么加快Python應用的啟動時間

pkg_resources

如您所見,導入pkg_resources 很緩慢。

但令人驚訝的是,pkg_resources沒有進行縮進;它不是pipenv的子導入。

這意味著pkg_resources是由pipenv腳本而不是模塊導入的。

怎么加快Python應用的啟動時間

壞消息: 導入pkg_resources很慢。這是一個已知的問題,在不破壞向后兼容性的情況下很難修復。

好消息: 您可以避免導入pkg_resources!

怎么加快Python應用的啟動時間

在安裝了wheel之后,pip會對它進行構建并從構建包進行安裝。

從wheel (.whl)和源碼包(.tar.gz)安裝是不同的過程。

從wheel安裝時,腳本中不使用pkg_resources:

怎么加快Python應用的啟動時間

IPython

看下面的部分.

怎么加快Python應用的啟動時間

pipenv導入dotenv, dotenv再導入 dotenv.ipython,它再導入IPython。

這就是為什么pipenv在我的環境中開始很慢; 我已經安裝了IPython。

但是為什么要導入IPython呢?我閱讀了dotenv源碼,發現它是用于IPython擴展的。

當然,pipenv和許多dotenv用戶并不使用IPython擴展。

我向dotenv提交了一個推送請求,建議dotenv根據需要導入IPython。

由于pipenv有自己的dotenv副本,所以我向pipenv提交了完全刪除dotenv.ipython的推送請求。

結論

我可以將 pipenv--version 的時間從800ms減少到500ms。

怎么加快Python應用的啟動時間

導入時間分析是研究和優化應用程序啟動時間的好方法。

關于“怎么加快Python應用的啟動時間”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

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

AI

剑川县| 密山市| 蛟河市| 招远市| 秦皇岛市| 漳平市| 明光市| 奉贤区| 邯郸市| 连州市| 鄂伦春自治旗| 阿尔山市| 黔南| 德安县| 宜良县| 卢龙县| 舒兰市| 阳春市| 怀集县| 安龙县| 石泉县| 临西县| 东城区| 翁牛特旗| 抚顺县| 威宁| 白河县| 潮安县| 马鞍山市| 蛟河市| 桐庐县| 怀柔区| 通山县| 五河县| 宿迁市| 博湖县| 平邑县| 澄江县| 巴彦淖尔市| 天峻县| 湖口县|