你好,欢迎进入江苏优软数字科技有限公司官网!

诚信、勤奋、创新、卓越

友好定价、专业客服支持、正版软件一站式服务提供

13262879759

工作日:9:00-22:00

IntelliJ IDEA内存优化最佳实践:给IDE多留内存及设置分享

发布时间:2025-05-16

浏览次数:0

IDEA 内存优化最佳实践 技术分享 第1张

请别再当旁观者,给您的集成开发环境多些支持。

不要做守财奴,给IDE多留点内存吧。

昨日,众人围绕是否对IDEA的内存配置进行自定义展开了热议,部分人倾向于保留预设值,另一些人则对预设进行了基础调整,而部分开发者则根据自身需求进行了细致且全面的配置。目前,笔者正忙于数个微服务项目的维护以及一个老旧项目的处理,客户的业务核心需求量颇大。在完成对 IDEA 内存进行基础的配置调整后,我明显察觉到了该集成开发环境在运行速度和操作响应性上的提升。然而,由于当时我并未进行详尽的量化测试,这种感受仅限于个人的主观体验。

然而,在讨论中,一位开发者向笔者分享了他的配置方案,尽管它也是为了同一个项目,但这个方案却显得相当繁复。笔者对自己的配置并无任何不快,却充满了好奇,想知道这些截然不同的配置与项目提供的标准配置相比,会产生怎样的差异。

目标

笔者的目标是在与日常开发项目相似的环境中(例如,加载一个大型项目、引入2至3个微服务、执行git pull操作并刷新大项目后),检验不同配置所产生的影响,最终筛选出在内存使用和运行速度方面均达到最佳平衡的配置方案。

测试机器和项目

项目

测试场景

在 Idea 中关闭所有项目

基于测试文件 idea. 进行设置

重启电脑

启动后关闭所有不相关的项目( 等等)

打开 Idea(测试时间)

打开大项目(测试时间)

检查 jstat -

打开两个微服务项目(测试时间)

检查 jstat -

返回大项目然后点击“刷新 项目”按钮(测试时间)

检查 jstat -

jstat -

jstat 是 JDK 内置的一个实用工具,其主要功能是通过 JVM 内置的指令对 Java 应用程序的资源使用情况和性能表现进行实时监控。该工具不仅涵盖了 Heap size 和垃圾回收状态等方面的监控,还提供了丰富的选项用于收集各类数据(详细文档可查阅)。然而,在本例中,我们将仅使用其中的一部分功能:

这个命令的输出结果如下:

微服务项目内存配置_IntelliJ IDEA 内存优化设置_intellij idea设置中文

本文着重探讨的关键指标包括垃圾回收事件(新生代垃圾回收和全垃圾回收)的发生频率以及相应的耗时(新生代垃圾回收耗时和全垃圾回收耗时)。

测试设置

笔者设置了四种不同的设置,为了好记,给它们起了不同的名字。

默认(灰色标识)

提供的默认设置:

Big(大)(红色标识)

给 Xmx 配 , e 设置 ,这已经是相当多的内存了:

(平衡的)(蓝色标识)

Xmx与Xms均设定为2GB,这样的内存分配显得相当均衡,既满足了应用的需求,又避免了资源的浪费。

(复杂的)(橘色标识)

与之前相同,Xmx与Xms均设定为2GB,然而在垃圾回收器以及内存管理方面,则分别采用了不同的回收机制和众多独特的参数选项。

以上内容即是笔者的测试配置intellij idea设置中文,为了实施这一测试案例,必须在相应位置创建一个名为idea的文件(此为Mac OS系统中的路径设定,请参照本文内容,根据您的操作系统进行相应的调整)。

现在,执行测试用例并比较结果。

结果Idea启动时间

IDEA 内存优化最佳实践 技术分享 第2张

如上图所展示,启动速度并不受内存配置的影响。在所有测试场景中,Idea的运行时长均为10秒,不受内存分配量的影响。这一点并不令人意外,因为在应用的早期阶段,这些配置尚未对应用的表现产生显著作用。

加载大项目花费的时间

项目及其七十万行代码正在被加载。然而,一些差异已经显现。采用默认设置所需的时间几乎比其他设置多出两倍。显而易见,如此庞大的代码库运行时需要更多的内存空间。若我们执行:

会发现,对比其它设置, GC 在默认设置下会变得异常忙碌。

IntelliJ IDEA 内存优化设置_微服务项目内存配置_intellij idea设置中文

IDEA 内存优化最佳实践 技术分享 第3张

IDEA 内存优化最佳实践 技术分享 第4张

GC 释放内存所需的总时长极为可观(几乎是常规时间的50倍),同时,Full GC 的平均运行时间同样极其漫长。在这些时间里,大量的资源被Full GC所占用,这直接导致了IDE响应速度的显著降低。

在IDEA中打开两个微服务

启动这两个微服务项目,然后在 IDEA 环境下进行查看,并对它们运行所需的时间进行对比分析。

IDEA 内存优化最佳实践 技术分享 第5张

在本次测试案例中,不同设置间的差异相当显著;其中,复杂配置表现出色;与此同时,默认配置则未能战胜其他两种配置。

再次使用jstat –

完成两个微服务项目的加载之后,我决定对在同时开启三个项目时垃圾回收(GC)的表现进行一番检验。测试结果显示,三个项目各自采用的不同自定义配置,其表现几乎一致;然而,相较之下,默认配置的表现则显得相当不尽人意。

IDEA 内存优化最佳实践 技术分享 第6张

IDEA内存优化技术分享会,第七部分即将进入尾声:深度探讨重新加载的技巧与策略。

目前,作者必须从库中提取该项目的当前最新版本,同时更新相关模块,以确保IDE能够识别并展示所有新增的类。

IDEA 内存优化最佳实践 技术分享 第8张

关键提示:该默认设置的灰色条形柱显得异常高大,这主要是因为在IDEA刷新时发生了崩溃,导致作者无法获取到实际所需的时间。显而易见,系统分配的内存容量不足以支撑这一操作。

通过观察三个自设的实例,我们可以看出,采用大内存配置所需的时间相对较短。因此,可以确认内存分配确实发挥了其应有的作用。

最后一次使用jstat-

由于 IDEA 在其预设配置中不具备项目刷新的功能,因此在本轮测试中,我们未将默认配置纳入考量范围。

IDEA 内存优化最佳实践 技术分享 第9张

微服务项目内存配置_intellij idea设置中文_IntelliJ IDEA 内存优化设置

IDEA 内存优化最佳实践 技术分享 第10张

观察图表可知,三者间的区别并不显著,然而在Big配置下,Full GC的运行速度是最快的。再者,当Xmx内存容量增加时,其对系统响应速度的提升效果尤为显著。

总结

在本次简短的实验中,我们发现即便对IDE的内存进行细微调整,也能显著增强IDE的性能。显然,内存分配得越多intellij idea设置中文,其执行效果就越佳。然而,我们同样注意到,除了IDE之外,许多其他应用程序同样需要占用内存资源。因此,我们的目标应当是在提升性能与控制内存消耗之间寻求一个合理的平衡点。作者认为,在多数情形下,将 Xmx 参数调整至2至3GB的区间内,效果往往最为理想。如若您拥有充裕的时间,不妨利用 jstat 工具来检测,通过调整不同的 JVM 配置,观察它们对性能与内存消耗的具体影响。

讨论

您的想法在设置上是如何进行的?另外,您是否还有其他途径来增强IDEA的表现力?我们何不就此展开一番交流呢?

对 Dubbo、Netty 等开源项目的源代码及其工作原理感到好奇?那么,诚挚地邀请您加入我的知识星球,与我们共同探讨和学习。扫描下方的二维码即可参与:,请长按识别。

目前在知识星球更新了《Dubbo源码解析》目录如下:

01.调试环境搭建

02.项目结构一览

03. 配置

04.核心流程一览

05.拓展机制 SPI

06. 线程池

07.服务暴露

08.服务引用 Refer

09. 注册中心

10. 动态编译

11. 动态代理 Proxy

12. 服务调用

13. 调用特性

14. 过滤器

15. NIO 服务器

16. P2P 服务器

如有侵权请联系删除!

13262879759

微信二维码