工欲善其事,必先利其器。idea作为Java程序员们工作中,打交道最多的软件,如果有过大量微服务项目同时开启开发的经验的程序员,想必会对idea是又爱又恨,过高的内存占用,运行时间长后idea响应迟钝,甚至无响应,简直令人抓狂。下面我们来让我们的idea变得更加好用吧,这些优化不仅仅是针对idea,理论上DataGrip,GoLand等Jetbrains的ide软件都是可以使用的。

1.JVM参数优化

idea也是基于Java开发,是运行在JVM中的,JVM的调优同样适用于idea。在idea中,工具栏中点击Help > Edit Custom VM Options,即可编辑JVM参数,重启后生效。

-Xverify:none 是让JVM加载类文件的时候,不去校验类文件的合法性完整性等,可以显著提高类加载的速度。我们默认idea软件提供的类都是可靠,配置这个参数后可以明显提高idea的打开时间,实现秒开的效果。

-Xmx2g 设置了最大的堆内存大小,可以控制你的idea无限制地占用你的系统内存。我这里设置的是2g,已经可以满足我的办公需要,大家可以按需调整。需要注意的是,这个堆内存你的idea编辑器的,所有idea打开的项目是共享这个堆内存的,但是,你在idea中run运行的程序,是不受这里的堆内存限制的。

-XX:+UseG1GC 配置使用G1垃圾回收器,目前最新版的idea已经是基于JDK17开发,支持ZCG和Shenandoah GC等新一代的垃圾回收器,但是目前都不足够稳定,也不适用于idea的使用场景。

在我的测试中,ZCG和Shenandoah GC均不能及时有效地进行垃圾回收,比较容易出现因堆内存占满导致idea严重卡顿的现象。所以我还是比较推荐使用G1垃圾回收器。

打开Memery Indicator,实时关注idea的堆内存占用情况。在idea的底栏,右键将Memery Indicator勾选上,就能在右下角实时看到内存占用,双击内存占用的显示条,还能手动触发垃圾回收释放内存。

完整配置文件参考:

-Xms1g
-Xmn256M
-Xmx2g
-XX:ReservedCodeCacheSize=512m
-XX:+UseG1GC
-XX:+UseStringDeduplication
-XX:MaxGCPauseMillis=200
-XX:InitiatingHeapOccupancyPercent=60
-XX:G1HeapRegionSize=32
-XX:ParallelGCThreads=8
-XX:G1ReservePercent=15
-XX:CICompilerCount=2
-XX:TieredStopAtLevel=1
-XX:MaxInlineLevel=3
-XX:Tier4MinInvocationThreshold=100000
-XX:Tier4InvocationThreshold=110000
-XX:Tier4CompileThreshold=120000
-Dsun.io.useCanonPrefixCache=false
-Djava.net.preferIPv4Stack=true
-Djdk.http.auth.tunneling.disabledSchemes=""
-XX:+HeapDumpOnOutOfMemoryError
-XX:-OmitStackTraceInFastThrow
-Djdk.attach.allowAttachSelf
-Xverify:none
-XX:SoftRefLRUPolicyMSPerMB=50
-Dkotlinx.coroutines.debug=off
-Djdk.module.illegalAccess.silent=true
-Dfile.encoding=UTF-8

2. 插件精简

每个idea插件都是要占用一定的内存的,所以尽量只安装和启用自己用的到的插件,可以减少idea对堆内存的占用,一定程度上提高idea的启动和运行效率。

idea自带的插件,Code With Me、 IDE Features Trainer 、Space、安卓套件、已经很少用到的Ant等,可以按自己实际需要把用不上的插件都给disable掉。

自己安装的插件如果不经常使用的话也可以disable掉或者直接卸载。后续我也会陆续给大家分享一些我经常使用的一些可以提高开发效率的插件给大家。

如果本文对你有帮助,欢迎大家关注收藏。作为一名具有极客精神的程序员,我会持续地给大家分享一些个人的开发经验和技术文章,若能帮助到你,那将是我莫大的荣幸。大家也可以关注我的同名微信公众号“三易程序员”,文章会在公众号和头条号同步更新,也欢迎大家私信探讨技术问题。

【idea性能篇】性能稳定、更好用的idea相关推荐

  1. Android 进阶第二篇——性能优化

    Android 进阶第二篇--性能优化 一些Android书籍喜欢把性能优化放在最后的章节,简单提一提作为内容全面的点缀.在这里我将工具使用和性能优化的一些个人经验放在进阶系列博客的开始,因为我认为防 ...

  2. 【朝花夕拾】Android性能篇之(二)Java内存分配

    前言       原文:[朝花夕拾]Android性能篇之(二)Java内存分配        在内存方面,相比于C/C++程序员,咱们java系程序员算是比较幸运的,因为对于内存的分配和回收,都交给 ...

  3. Synology DS412+ 安装与性能篇

    [安装篇] DS412+入手也有好几天了,开箱的时候并没有拍多少照片,因此安装这篇就没法细写了.好在网络上类似的文章还是有的,比如这篇就写得相当详细: http://t17.techbang.com/ ...

  4. 【Linux 性能优化系列】Linux 性能优化 -- CPU 性能篇(三) Linux 软中断

    [Linux 性能优化系列]Linux 性能优化 -- CPU 性能篇(三) Linux 软中断 [1]相关概念 [1.1]中断 中断其实是一种异步的事件处理机制,可以提高系统的并发处理能力:为了减少 ...

  5. Android专项测试性能篇整理

    Android专项测试性能篇整理 转自 slq520 分类专栏: APP性能测试 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:h ...

  6. Infortrend CS分布式NAS集群强项之性能篇

    Infortrend CS分布式NAS集群强项之性能篇 嵌入式存储系统,集成一体化集群,性能更具优势 采用自主研发的嵌入式架构,极简的IO处理指令,使得硬件发挥出最大性能.产品软件硬件一体化设计,将软 ...

  7. Kafka性能篇:为何Kafka这么快?

    『码哥』的 Redis 系列文章有一篇讲透了 Redis 的性能优化 --<Redis 核心篇:唯快不破的秘密>.深入地从 IO.线程.数据结构.编码等方面剖析了 Redis " ...

  8. android游戏性能测试,评测 篇二十九:用游戏数据来彰显实力,华为nova5i Pro游戏性能篇...

    评测 篇二十九:用游戏数据来彰显实力,华为nova5i Pro游戏性能篇 2020-01-02 00:20:00 4点赞 1收藏 2评论 笔者带着大家对华为nova5i Pro做了开箱测试,了解外观与 ...

  9. 【Linux 性能优化系列】Linux 性能优化 -- CPU 性能篇(一) 平均负载、上下文切换、CPU 使用率

    [Linux 性能优化系列]Linux 性能优化 -- CPU 性能篇(一) 平均负载.上下文切换.CPU 使用率 [1]相关概念 [1.1]平均负载 平均负载是指单位时间内,系统处于可运行状态和不可 ...

  10. 阿里云RDS金融数据库(三节点版) - 性能篇

    标签 PostgreSQL , MySQL , 三节点版 , 金融数据库 , Raft , 分布式共享存储版 背景 终于到了性能篇,三节点同时满足了企业对数据库的可用性.可靠性的要求,那么性能如何呢? ...

最新文章

  1. java中countinue,.random(用于产生一个随机数)入门可看
  2. 为什么不应该重写service方法?
  3. 学python爬虫需要什么基础-从零开始教你学爬虫!python爬虫的基本流程!
  4. 怎么把向上滑动取消_美瞳滑片是什么意思?为什么会滑片?怎么解决?
  5. Jerry和您聊聊Chrome开发者工具
  6. Getting Contexts 获得上下文
  7. 敏捷开发日常跟进系列之一:燃尽图(上)
  8. 机器学习算法基础5-决策树与随机森林
  9. 防御病毒邮件得看U-Mail邮件网关
  10. thinkphp前端显示被反编译详解
  11. linux优化deepin启动速度,如何优化 Deepin 引导开机速度?
  12. PMP|项目经理如何做好相关方管理?
  13. (Neighbourhood Components Analysis) NCA 近邻成分分析的学习
  14. 从童年回忆到“人人喊打“,好丽友做错了什么?
  15. 第七章 卷积神经网络2(代码实现)
  16. JVM参数 之 -XX:MaxGCPauseMillis 与 -XX:GCTimeRatio
  17. Dirmap:一款高级Web目录文件扫描工具
  18. mysql case when 优化_SQL 逻辑优化 case when 转为 union all
  19. 【动态规划】01背包问题(c++代码逐句分析)
  20. 驭电之道-电子和电气的区别

热门文章

  1. 【洛谷P1430】序列取数【dp】
  2. 微信视频(图片)打赏源码视频教程,图片打赏观看制作付费观看程序,微信打赏
  3. Addressable如何删除旧资源
  4. mpvue实战美团外卖点餐小程序
  5. 金蝶-增值税调整软件同步处理办法
  6. 正割、余割、正弦、余弦、正切、余切之间的关系的公式 sec、csc与sin、cos、tan、cot之间的各种公式...
  7. php mod rewrite.so,开启Apache mod_rewrite模块完全解答
  8. 软件安全理论测试部分
  9. 树莓派安装Python-OpenCV
  10. 从苏宁电器到卡巴斯基第05篇:我在佳木斯的日子(上)