Intelliji IDEA在调试模式下非常缓慢,而在正常模式下运行完美。

35

在调试模式下,Intelliji idea非常缓慢,而在正常模式下运行得完美无缺。

我已经尝试通过在/ etc / hosts文件中设置以下内容来解决问题 sudo nano /etc/hosts并添加这两个条目。

127.0.0.1 .local ::1 .local

但这对我没有起作用。

非常感谢任何关于此的帮助。


4
你是否在方法签名上设置了任何断点,而不是在方法体上设置?那会大大减慢速度。 - aphrid
同时告诉IntelliJ清除所有现有断点,以防它们存在于久远的代码中。 - flakes
请参阅 https://intellij-support.jetbrains.com/hc/articles/206544799。 - CrazyCoder
1
我尝试了你提到的所有选项,但仍然非常慢。 - swathi
2022.1.3版本仍存在问题。 - vikramvi
16个回答

40

将方法的断点移除,并在方法内部使用它们,这样可以避免调试时间过长。

尝试以管理员身份运行IntelliJ。我曾在工作中遇到过调试非常慢的问题,以管理员身份运行实际上使其更快。

方法断点可能会极大地减缓调试速度

IntelliJ团队给出了一个简单的解释: “由于JVM的设计,方法断点会严重减缓调试器的速度,因为它们的评估成本很高”

https://intellij-support.jetbrains.com/hc/en-us/articles/206544799-Java-slow-performance-or-hangups-when-starting-debugger-and-stepping


2
我清除了所有断点,并在方法内设置了一个断点,但仍然非常缓慢。我正在以管理员身份运行IntelliJ。 - swathi
也许重新安装JDK和IntelliJ? - Moe
如果我运行普通的Java应用程序,它可以正常工作。但是,如果我在IntelliJ中运行Appium测试用例,则调试器会变慢。 - swathi
3
请确认是否设置了任何断点?在IntelliJ中打开断点窗口,并确保没有设置任何断点。让我知道结果,我将尽力提供进一步帮助。Run --> View Breakpoints。如果您找到任何断点,请全部删除,然后再次尝试运行调试(速度是否仍然很慢?)。 - Moe
我移除了所有断点并尝试运行它。但是在使用Appium的调试模式下仍然很慢,但对于普通的Java应用程序来说运行良好。 - swathi
显示剩余3条评论

25
如果您在“构建、执行、部署 -> 调试器 -> 数据视图 -> Java”中禁用此选项,则在调试时,事情会更快。

输入图片说明


5
我的问题是toString()方法。我怀疑它被懒加载的数据库实体属性所困惑。我希望有一个额外的选项可以"禁用列表中的类的 toString() 对象视图",这样我就可以将所有实体都添加到其中以确保这是问题所在。 - Guilherme Taffarel Bergamin
这对我来说有效,问题是,这会对速度产生什么影响,还会有其他的效果吗? - undefined
我不知道IntelliJ从什么时候开始在调试期间内联显示值。在我的情况下,这是一个大问题,因为我在内存中有一个庞大的对象图,并且IntelliJ会对所有内容调用toString()以内联显示值。在同一个首选项菜单中,在“数据视图”上方,现在有一个选项可以禁用该功能。 - undefined

21

我曾经遇到过类似的问题,我的情况是由于 方法断点 导致的。在一个方法上只有一个断点,我的 Spring Boot 应用程序需要大约 20 分钟才能启动。当我删除断点后,应用程序只需 4 秒即可启动。

我还更改了调试器设置。

  1. 取消勾选 - 启用集合类的备选视图视图
  2. 取消勾选 - 启用 'toString()'对象视图:

但这些设置没有任何影响。


我也遇到了类似的问题...但是我在字段级别设置了断点。Spring Boot 应用程序启动时间比正常启动时间长了 10 倍。 - Narendra Reddy

5

点击“静音断点”并启动它,它会像正常模式一样立即启动(没有任何延迟)

输入图像描述


4

我曾通过禁用断点来解决类似的问题,它是远程调试造成的。 我没有进行任何性能测量,但看起来大约可以有10个活动断点,但拥有100个断点则会灾难性(我猜测,断点列表被发送到网络上)。

Idea允许您对断点进行分组并禁用整个组。

请注意,若您点击了错误的鼠标按钮,则会清除您的断点而非让您编辑它的条件,因此要小心!


2

我也遇到了同样的问题,在删除所有断点后,它开始正常工作。


1

确保您的日志中不使用"biz.paluch.logging.gelf.logback.GelfLogbackAppender"。在我的情况下,使用这种类型的appender是导致调试模式下启动速度大幅减慢的原因。


我也遇到了完全相同的问题,无论是运行还是调试都一样。只要启用gelf appender就会出现这种情况。有什么想法吗? - Bahadır Yağan
为什么在本地开发/调试时要使用GELF(Graylog Extended Log Format)appender?它会将所有日志发送到您的graylog服务器(当然,如果您不使用UDP版本,可能会很慢)。 - undefined

1

移除所有接口方法断点将修复长时间的Spring Boot启动Idea调试运行问题。


1
在我的情况下,我只需要禁用选项:“显示方法返回值” 选项的图片

1

从DAO接口中删除断点,一切都很顺利!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接