先上代碼
fromopenpyxlimportload_workbook importnumpyasnp importpandasaspd importxlwingsasxw importcsv importjieba importpangu importre print('hello')
這個樣例,在print行加一個斷點(diǎn),即可測試出緩慢效果
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)計(jì)信息 stats.sort_stats("cumulative").print_stats()#打印前10行統(tǒng)計(jì)信息 if__name__=="__main__": profile_import()
發(fā)現(xiàn)
/home/qiangge/.conda/envs/py031105/lib/python3.12/site-packages/jieba/finalseg/prob_emit.py
這里的文件共35000多行,因?yàn)檫@個嗎?懷疑是多線程問題導(dǎo)致。
非debug模式下,也就是runcode模式下,并不會出現(xiàn)這個prob_emit.py的加載。這里估計(jì)是多線程在debug下會有阻塞問題。
小結(jié)
并沒有徹底找出根因,但是很顯然,有如下結(jié)論
導(dǎo)入包,對于運(yùn)行沒有性能問題
導(dǎo)入包,對于不同的包,性能影響很顯著
可能是多線程引發(fā)了debug性能問題。
-
Linux
+關(guān)注
關(guān)注
87文章
11314瀏覽量
209777 -
python
+關(guān)注
關(guān)注
56文章
4797瀏覽量
84787 -
vscode
+關(guān)注
關(guān)注
1文章
155瀏覽量
7727
原文標(biāo)題:python導(dǎo)入包引發(fā)的debug緩慢問題探究
文章出處:【微信號:gh_361ab7628207,微信公眾號:Geant4模擬學(xué)習(xí)交流】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論