新版本 IDE 的启动速度变快了?原来是在背后做了这些!

如需进一步了解IntelliJ IDEA,欢迎咨询JetBrains授权合作伙伴-龙智。
IntelliJ IDEA 功能强、范围广,因此对资源有一定需求。根据您正在处理的项目,IDE 可能会出现滞后,这自然会令人沮丧。
打开项目时也许是开发者需要等待的最常见场景。IntelliJ IDEA 需要加载和同步项目、执行索引编制以及完成许多其他小任务才能启用所有实用功能。
在这篇博文中,我们将介绍在新版本 IntelliJ IDEA 中为提高性能而采取的措施,这些措施缩短了代码可交互时间并使 IDE 从启动开始就具有更高的响应速度。
我们的使命:改进代码可交互时间
对于 2023.2 之前的 IntelliJ IDEA 版本,IDE 必须等待项目的 Maven 或 Gradle 项目模型完全同步后才能开始编制索引。然后,在等待索引编制完成时,IDE 的所有智能功能都被禁用,包括代码高亮显示和导航。只有在索引编制完成后才能使用它们。
下面是相关组件的示意图:

改进项目打开流和体验
有关技术性能改进的更多详细信息,请前往微信公众号(龙智DevSecOps)观看 Yuri Artamonov 的精彩演讲(英文),并继续关注更多文章。
分阶段同步索引编制 >>
阶段 1:跳过依赖项解析
阶段 2:下载并解析依赖项
作为一项额外改进,我们使许多功能在索引尚未就绪时也能运行,进一步缩短了代码可交互时间。最重要的是个别文件中的代码高亮显示、部分代码解析和运行配置。当然,准备好底层索引会让这些操作更快,但即使只有部分索引,它们也能可靠地工作。
结果

我们怎么知道是否值得?
根据项目,我们测试套件中的代码可交互时间(或者更准确地说,以上架构中完全高亮显示之前的时间)在第一次打开项目时速度最多能快上几倍。
下面的示例展示了项目树的显示速度和项目中高亮显示的启用速度有多快,以前访问这些功能需要几十秒的时间。
调查显示,大约 30% 的用户认为 IntelliJ IDEA 2024.2 让他们能够更快开始编码。
后续计划
虽然并非所有 IntelliJ IDEA 功能都能在编制项目索引时使用,但两阶段同步方式无疑加快了整体启动性能,让您更快地开始与代码交互。此外,我们还使许多操作与没有索引或只有部分索引的情况兼容。在 2024.2 版本中,大约 10% 的用户确实在整个同步和索引编制过程完成之前编写代码。但我们的工作还没有结束。
我们现在的目标是改进分阶段同步,尤其是与 Gradle 的同步,进一步缩短代码可交互时间。我们还在更新依赖项尚未解析时处理项目的用户体验。
同时,我们希望您能享受我们在缩短代码可交互时间方面取得的成果。
本博文英文原作者:Kerry Beetge
关于 IntelliJ IDEA
JetBrains 的旗舰 IDE IntelliJ IDEA 专为高效的 JVM 开发而设计。凭借对语言和技术的深入了解以及符合人体工程学的用户界面,IntelliJ IDEA 使开发成为愉悦的体验!
免费的开源 IntelliJ IDEA 社区版和 IntelliJIDEA Edu 也可以用于学习和教学编程。
咨询JetBrains授权合作伙伴-龙智,进一步了解 IntelliJ IDEA:
官网:www.shdsd.com
电话:400-666-7732
邮箱:marketing@shdsd.com