PyCharm 跑得太慢了

我是 PyCharm 作者: JetBrains的忠实粉丝,但我确实遇到了一些问题,我想也许我可以在这里问一下。

  1. 它出乎意料地悬挂着,这种情况经常发生。总的来说,对于我的口味来说,它有点慢,我希望得到一些关于如何提高 IDE 性能的提示
  2. 通常,当我打开一个项目 PyCharm 时,它似乎会将所有内置的引用标记为未解决的引用警告。比如 open ()、 str ()等,以及我导入的一些模块,比如 sys (这些是最常见的违规者:)。

我唯一能够修复(2)的方法是使用 PyCharm-> Preferences-> Python Interpreters-> Path-> Reload List of Path,但是我必须经常这样做才能保证问到一个更永久的修复。

我的配置: Mac OSX Lion 在 MacBook Pro 上运行(2010年中) ,配有8GB 内存

听着,我知道在没有任何快照或者更多信息的情况下诊断这些问题是很困难的但我只是想知道是否有人以前遇到过这些问题如果有,这些问题是怎么解决的?

另外,关于这些问题,我也联系过 JetBrains,但说实话,我倾向于在这里找到解决常见问题的好办法,我觉得我也应该问问

142669 次浏览

PyCharm 的每个性能问题都是独一无二的,帮助一个人的解决方案不会为另一个人工作。解决特定性能问题的唯一正确方法是捕获 CPU 分析器快照 如本文件所述发给 PyCharm 支持团队,可以提交票据或 直接进入问题追踪器

在分析了 CPU 快照之后,PyCharm 团队将修复并发布一个新版本,该版本(希望)不会受到这个特定性能问题的影响。团队可能还会建议您进行一些配置更改或变通方法,以根据对提供的数据的分析来纠正问题。

所有其他的“解决方案”(如启用电源保存模式和改变突出显示级别)只会隐藏应该修复的真正问题。

1. 改变检查水平

当前的 PyCharm 版本允许你改变它执行的静态程序分析类型,还有一个功耗/CPU 节省功能(点击右下角的图标,紧挨着锁) :

enter image description here

2. 更改索引目录
将在项目路径中设置但实际上不需要搜索和索引的目录排除在索引之外。按 ALT+CTRL+S并搜索 project

3. 扫描内存
还有一个有趣的特点:

进入设置(文件/设置)并搜索 记忆。在 IDE Settings>Appearance-> 勾 Show memory indicator。记忆条会显示在右下角(见下图)。单击此栏运行 垃圾收集/内存清理

enter image description here

关于冻结问题,我们发现这发生在处理 CSV 文件时,至少有一个非常长的行。

复制:

[print(x) for x in (['A' * 54790] + (['a' * 1421] * 10))]

但是,它似乎是 固定在 PyCharm 4.5.4,所以如果您遇到这种情况,请尝试更新您的 PyCharm。

Lorenz Lo Sauer 对此已经有了一个很好的问题。但是如果您想通过 Pycharm 优化解决这个问题(不关闭 Pycharm 代码检查)。您可以根据需要调整堆大小。因为我更喜欢使用增加堆大小的解决方案运行缓慢的魅力应用程序。

您可以通过编辑 pycharm.exe.vmoptions 文件来调优堆大小。以及用于64位应用程序的 pycharm64.exe.vmoptions。然后在其上编辑-Xmx 和-Xms 值。

因此,我为 xmx 分配了2048m,为 PycharmHeap Size 分配了 xms 值(2GB)。这里是我的配置。我有8GB 的内存,所以我设置了这样的设置:

-server
-Xms2048m
-Xmx2048m
-XX:MaxPermSize=2048m
-XX:ReservedCodeCacheSize=2048m

保存设置并重新启动 IDE。并且我在设置-> 外观和行为-> 外观中启用“显示内存指示器”。看到它的实际运作:

Pycharm slow, slow typing, increase Pycharm Heap Size

魅惑术现在又快又好。

参考资料: https://www.jetbrains.com/help/pycharm/2017.1/tuning-pycharm.html#d176794e266

如前所述,通过改变堆大小非常容易。 只要轻松地进入 PycharmHELP-> 编辑自定义 VM 选项... 并将其更改为:

-Xms2048m
-Xmx2048m

我找到了一个解决这个问题的办法,在 Windows 上运行良好,并希望与大家分享。

解决方案没有工作: 我有16GB 的内存,仍然有可怕的延迟。PyCharm 占用的内存不到1GB,所以这不是问题所在。关闭检查没有任何帮助,我也没有任何特殊的插件,我记得。我还尝试利用 CPU 对进程的亲和力,这种方法虽然短暂地起作用,但并不真正起作用。

什么工作完美,几乎完美:

  1. 将 PyCharm 的 CPU 优先级设置为高于正常
  2. 将 Python 进程的 CPU 优先级设置为低于正常值

您可以手动执行此操作,但是我建议使用一个程序,该程序可以在重新启动时和对于多个实例时保留设置。我使用了 Process Hacker: 右键单击 Process-> Advant- > Set the 丁。然后再次右键单击-> Process-> ,选择“ Save for pycharm64.exe”,同样地,选择 python“ Save for python.exe”最后在 Process Hacker 中转到 Options 并选择“ Start when I login on”这将使所有 Pycharm 和 python 可执行文件获得这些 CPU 优先级,即使在重新启动程序和/或 Windows 之后,也不管启动多少 python 实例。

基本上,PyCharm 的大部分延迟可能是由于与其他程序的冲突。想想看: 是的,PyCharm 需要很多 CPU,但是 PyCharm 的开发者并不愚蠢。他们可能至少已经确保了它可以在一个空核心上毫无延迟地运行。但是现在你打开 Chrome 和30个标签,Fiddler,一个 FTP 程序,iTunes,Word,Slack 等等,它们都在同一个 CPU 优先级上与 PyCharm 竞争。每当一个核心上所有程序的总和 > 100% 时,你就会看到延迟。切换到高于正常优先级给 PyCharm 一些更接近于它可能被测试的空核心的东西。

至于 python.exe 上的 Under Normal,基本上你不想让你的计算机因为你自己的开发而变慢。大多数 python 程序本质上都是“批处理”程序,您可能不会注意到运行所需的额外时间。如果您正在开发图形交互式程序,我不推荐这样做。

在我的例子中,问题是项目目录中的一个文件夹,其中包含300k + 文件,总计11Gb。这只是一个临时文件夹,其中包含一些计算结果的图像。将此文件夹从项目结构中移出后,缓慢就消失了。我希望这可以帮助某人,请检查您的项目结构,看看是否有什么是不必要的。

在我的情况下,这是非常缓慢的,我需要改变检查设置,我尝试了一切,唯一的工作是从2018.2版本到2016.2,有时是更好的一些更新后..。

我认为 PyCharm 存在速度问题,但最终结果是,PyCharm 中的输出控制台不一定模拟最先进的终端应用程序的输出。

我的解决办法是: 单击配置的下拉(箭头)符号-> 单击 edit configuration-> 单击 emulate terminal in output console-> 单击 ok-> 运行配置。

一切正常,但是在定义我的 File-Settings-Project: 姓名-Python Interpreter 之前,我在代码编辑器中有很大的延迟。