簡體   English   中英

PyCharm IDE 調試時速度很慢 Python 讀取小 pickle 文件

[英]PyCharm IDE is very slow on debug Python reading small pickle file

調試有時需要 10 秒。 讀取 30mega + 5 mega pickles 后問題開始,用 pdb 調試就可以了。 即使在“打印”行

有什么建議么?

if __name__ == "__main__":
    print 'loading files...',
    with open(fname1, 'rb') as handle: items = pickle.load(handle)
    with open(fname2, 'rb') as handle: sentences_by_id= pickle.load(handle)
    print ' done!'

我對 ndarrays 列表的字典有類似的問題。 當列表太長時,pycharm 調試器會凍結,top 會顯示 pycharm 的 cpu 為 102%(我猜有幾個核心處於活動狀態)並且解凍需要很長時間。 沒有斷點運行很好。 我的解決方案是將 ndarrays 上的所有列表轉換為 ndarrays,例如

<pseudo python>
for k in dict_of_lists_of_ndarrays:
     dict_of_lists_of_ndarrays[k]=np.array(dict_of_lists_of_ndarrays[k])
</pseudo python>

現在情況有了很大改善。 我不知道是什么問題

我在 JetBrains support 上找到了這個線程,它建議關閉“顯示返回值”選項(您可以在調試工具欄的設置中找到它,齒輪圖標)。 它已經為我解決了。

我對此做了一些分析,還使用 ​​PyDev 插件將我的 IDE 更改為 Elipse。

仍然調試python程序比實際直接執行python程序太慢。

慢多少? 我的計算密集型程序花了超過 17 分鍾,仍然沒有解決方案,直接運行時,相同的程序在 2 分鍾內返回輸出。

我想問題出在 Python 調試器上,而不是 IDE 的 Eclipse 或 Jetbrains Pycharm 上。 我可以為兩者作擔保,因為我已經在這兩個方面工作了很多年。

值得檢查是否有任何可用於 Python 調試器的顯式調試器速度設置選項。

對我的幫助是將“可變加載策略”更改為“按需”。 這是通過單擊調試菜單中的小齒輪來完成的。 要查看圖片,請查看鏈接:

https://intellij-support.jetbrains.com/hc/en-us/community/posts/206601625-pycharm-debugger-slow-due-to-collecting-data-

這發生在我身上(PyCharm 2019.3),它是由放置在文件上的無效斷點引起的,這些斷點隨后被刪除、編輯等。刪除所有斷點並確保您沒有在異常“raise”上獲得斷點。 一旦我這樣做了 PyCharm 調試就恢復了正常速度

相當延遲,但是我遇到了類似的問題,一個多星期都無法解決我的生活。 嘗試了以上所有,還有更多。 最終,對我來說,以下兩個解決方案之一起作用了(在 inte.net 中找到它們,不幸的是無法找到適當的信用):

  1. Python 調試器 -> 啟用 Gevent。
  2. 在運行開始時添加 np.set_printoptions(threshold=5)。

不知道為什么它有幫助 - 當問題開始時,我沒有更改我的代碼中的任何內容,包括 gevents 的使用。 但是,這似乎沒有什么壞處; 特別是選項(2)...

#voodoosolutions

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM