PyCharm IDE在调试Python阅读小pickle文件时非常慢

83qze16e  于 2023-01-13  发布在  PyCharm
关注(0)|答案(6)|浏览(230)

调试有时需要10秒。读取30mega +5mega pickles后开始出现问题,使用pdb调试也可以。即使是在"print"行上
有什么建议吗?

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!'
vlurs2pr

vlurs2pr1#

我在ndarray列表的dict中遇到了类似的问题。当列表太长时,pycharm调试器会冻结,top会显示pycharm的cpu为102%(我猜有几个内核是活动的),并且它会花很长时间来解冻。没有断点运行是可以的。我的解决方案是将我所有的ndarray列表转换为ndarray,例如

<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>

现在好多了,不知道是什么问题

lmvvr0a8

lmvvr0a82#

对我有帮助的是将“变量加载策略”更改为“按需”。这是通过单击调试菜单中的小齿轮来完成的。要查看图片,请查看链接:
https://intellij-support.jetbrains.com/hc/en-us/community/posts/206601625-pycharm-debugger-slow-due-to-collecting-data-

xggvc2p6

xggvc2p63#

相当延迟,然而我有类似的问题,不能解决我的生活超过一个星期。尝试了所有上述,和更多。最终,对我来说,以下两个解决方案之一的工作(发现他们在互联网上,不幸的是找不到在哪里,为适当的信贷):

  1. Python调试器-〉启用Gevent。
    1.在运行开始时添加np.set_printoptions(阈值=5)。
    不知道为什么会有帮助--当这个问题开始时,我没有改变代码中的任何东西,包括gevents的用法。特别是备选案文(2).

巫毒解决方案

8wigbo56

8wigbo564#

我在JetBrains支持上找到了this thread,它建议关闭“显示返回值”选项(你可以在调试工具栏的设置中找到它,齿轮图标)。它已经为我解决了这个问题。

abithluo

abithluo5#

我对此做了一些分析,还使用PyDev插件将我的IDE更改为Elapse。
调试python程序仍然比实际直接执行python程序慢得多。

**慢了多少?**我的计算密集型程序花了17分钟以上,但仍然没有解决方案,当直接运行时,同一程序在2分钟内返回输出。

我猜问题出在Python调试器上,而不是IDE的Eclipse或Jetbrains Pycharm上,我可以为这两个问题担保,因为我已经在这两个问题上工作了很多年。
有必要检查一下Python调试器是否有任何显式的调试器速度设置选项。

v6ylcynt

v6ylcynt6#

这发生在我身上(PyCharm 2019.3),它是由无效断点导致的,这些断点被放置在随后删除,编辑等的文件上。删除所有断点,并确保您没有在异常“引发”上获得断点。一旦我这样做了,PyCharm调试就回到了正常速度

相关问题