先上代碼
fromopenpyxlimportload_workbook importnumpyasnp importpandasaspd importxlwingsasxw importcsv importjieba importpangu importre print('hello')
這個樣例,在print行加一個斷點,即可測試出緩慢效果
Linux下的虛擬環(huán)境啟用
開始用win來測試效果,發(fā)現(xiàn)很慢,難道和系統(tǒng)有關(guān)系嗎,于是進(jìn)行l(wèi)inux下的python代碼debug嘗試。
manjaro或者archlinux用pip安裝報錯,比如

處理這個情況的設(shè)置好vscode,做好如下勾選

這樣debug的時候就可以有效加載虛擬環(huán)境。
使用cprofile進(jìn)行性能跟蹤
importcProfile
importpstats
#importsome_module
defimport_module():
#fromopenpyxlimportload_workbook
importjieba
defprofile_import():
#創(chuàng)建一個性能分析器對象
profile=cProfile.Profile()
profile.enable()
#運(yùn)行要分析的函數(shù)
import_module()
#停止性能分析
profile.disable()
#生成一個性能報告
stats=pstats.Stats(profile)
#stats.sort_stats("cumulative").print_stats(10)#打印前10行統(tǒng)計信息
stats.sort_stats("cumulative").print_stats()#打印前10行統(tǒng)計信息
if__name__=="__main__":
profile_import()
發(fā)現(xiàn)

/home/qiangge/.conda/envs/py031105/lib/python3.12/site-packages/jieba/finalseg/prob_emit.py
這里的文件共35000多行,因為這個嗎?懷疑是多線程問題導(dǎo)致。
非debug模式下,也就是runcode模式下,并不會出現(xiàn)這個prob_emit.py的加載。這里估計是多線程在debug下會有阻塞問題。
小結(jié)
并沒有徹底找出根因,但是很顯然,有如下結(jié)論
導(dǎo)入包,對于運(yùn)行沒有性能問題
導(dǎo)入包,對于不同的包,性能影響很顯著
可能是多線程引發(fā)了debug性能問題。
-
Linux
+關(guān)注
關(guān)注
88文章
11788瀏覽量
219347 -
python
+關(guān)注
關(guān)注
58文章
4880瀏覽量
90233 -
vscode
+關(guān)注
關(guān)注
1文章
173瀏覽量
9231
原文標(biāo)題:python導(dǎo)入包引發(fā)的debug緩慢問題探究
文章出處:【微信號:gh_361ab7628207,微信公眾號:Geant4模擬學(xué)習(xí)交流】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
導(dǎo)入Python庫失敗的缺失庫怎么解決
淺析python導(dǎo)入包引發(fā)的debug緩慢問題
評論