日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python 桌面应用 启动缓慢_如何加快Python 应用的启动时间

發(fā)布時(shí)間:2025/3/11 python 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python 桌面应用 启动缓慢_如何加快Python 应用的启动时间 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

我聽說pipenv9.0.2已經(jīng)發(fā)布,啟動時(shí)間有了很大的改進(jìn)。

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

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

啟動時(shí)間≒導(dǎo)入時(shí)間

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

一般來說,當(dāng)應(yīng)用程序啟動時(shí),會有一些啟動過程,比如加載環(huán)境變量或配置文件。

對于Python應(yīng)用程序,導(dǎo)入模塊占用了大部分啟動時(shí)間。例如,pipenv --version 花費(fèi)了大約800ms,而import pipenv 花費(fèi)了700ms。

顯示模塊的導(dǎo)入時(shí)間

Python 3.7有新的特性來顯示導(dǎo)入模塊的時(shí)間。

這個(gè)特性是通過 -X importtime 選項(xiàng)或 PYTHONPROFILEIMPORTTIM 環(huán)境變量來啟用的。

例如,您可以利用以下命令來測試pipenv的導(dǎo)入時(shí)間:

這里是一個(gè)pipenv --version輸出結(jié)果的例子 。

研究導(dǎo)入時(shí)間

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

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

在導(dǎo)入pipenv的同時(shí),還導(dǎo)入了許多其他模塊。從上面的示例中,您可以看到 pipenv 導(dǎo)入了pipenv.cli。子導(dǎo)入以2個(gè)空格縮進(jìn)。

再看最后一行。507表示運(yùn)行pipenv模塊時(shí)只需要507us。579479-507=578972us用于子導(dǎo)入。

找出緩慢的部分

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

pkg_resources

如您所見,導(dǎo)入pkg_resources 很緩慢。

但令人驚訝的是,pkg_resources沒有進(jìn)行縮進(jìn);它不是pipenv的子導(dǎo)入。

這意味著pkg_resources是由pipenv腳本而不是模塊導(dǎo)入的。

壞消息: 導(dǎo)入pkg_resources很慢。這是一個(gè)已知的問題,在不破壞向后兼容性的情況下很難修復(fù)。

好消息: 您可以避免導(dǎo)入pkg_resources!

在安裝了wheel之后,pip會對它進(jìn)行構(gòu)建并從構(gòu)建包進(jìn)行安裝。

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

從wheel安裝時(shí),腳本中不使用pkg_resources:

IPython

看下面的部分.

pipenv導(dǎo)入dotenv, dotenv再導(dǎo)入 dotenv.ipython,它再導(dǎo)入IPython。

這就是為什么pipenv在我的環(huán)境中開始很慢; 我已經(jīng)安裝了IPython。

但是為什么要導(dǎo)入IPython呢?我閱讀了dotenv源碼,發(fā)現(xiàn)它是用于IPython擴(kuò)展的。

當(dāng)然,pipenv和許多dotenv用戶并不使用IPython擴(kuò)展。

我向dotenv提交了一個(gè)推送請求,建議dotenv根據(jù)需要導(dǎo)入IPython。

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

結(jié)論

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

導(dǎo)入時(shí)間分析是研究和優(yōu)化應(yīng)用程序啟動時(shí)間的好方法。

總結(jié)

以上是生活随笔為你收集整理的python 桌面应用 启动缓慢_如何加快Python 应用的启动时间的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。