Eclipse/ SpringSTS 使用 Spring 和 Lombok.jar 的代码支持非常慢

问题描述 投票:0回答:1

所以,首先这种情况只发生在我们使用 lombok.jar 的 Java 项目中。该项目有超过 1900 个 Java 文件。现在,当我按键盘上的 [CTRL+空格键] 或输入“.”后等待时,问题就出现了。键盘上的 键,用于启动自动完成。

系统(32 GB RAM、处理器 AMD Ryzen 5 PRO 3500U 带 Radeon Vega Mobile Gfx、2100 Mhz、4 核、8 个逻辑处理器、全 SSD HDD)有时需要惊人的 8 到 10 秒以便显示自动完成,并且 IDE 将冻结。 [Eclipse + Spring STS 插件 + Lombok 插件] 和 [SpringSTS IDE + Lombok 插件] 的问题都是相同的。

在没有 lombok.jar 的情况下,代码辅助在 Eclipse 和 SpringSTS 项目中都非常快

https://github.com/projectlombok/lombok/issues/2489中有一些科学家对此进行了讨论,但最终没有解决我的问题,因为我不想去编辑lombok本身。有人遇到/解决这个问题吗?

eclipse annotations lombok annotation-processing sts
1个回答
0
投票

所以,几个月后,我终于偶然发现了答案,并想分享它,因此写了这篇文章。根据 Eclipse 文档,外部插件提供的注释处理可能很慢(在本例中为 Lombok),因此我们禁用“在编辑器中”处理。这意味着在触发“Eclipse build”后会出现与注释相关的错误,这对我来说没问题,因为我总是在 Eclipse 中设置“自动构建”。

此配置更改将代码辅助时间从 8-10 秒缩短到我可以忍受的大约 1-2 秒。

这是 Eclipse 文档所说的

在编辑器中启用处理

启用此选项后,只要在 Java 编辑器中进行更改以及构建项目,处理器就会运行。启用处理器在编辑器中运行允许它们在您键入时生成错误和警告。例如,处理器可以用红色波浪线标记错误的注释值来指示仅编译器无法发现的语义问题。但是,某些注释处理器速度足够慢,以至于在编辑器中运行它们会干扰编辑器的可用性。在这种情况下,禁用此选项可以提高编辑器的性能。每当项目构建时,处理器仍然会运行。此选项不适用于 Java 6 注释处理器,Eclipse(目前)只能在构建期间运行。

© www.soinside.com 2019 - 2024. All rights reserved.