IntelliJ IDEA优化配置的实现
作者:襄垣云原生 发布时间:2023-01-01 03:29:55
标签:IDEA,优化
默认配置
默认配置比较低,打开稍大点的项目就很容易卡掉,所以最好扩大一下内存。
IntelliJ IDEA的VM配置
IntelliJ IDEA2020版本已经有中文汉化插件的,不熟悉英文的可以安装一下,配置VM的菜单见"帮助" -> "编辑自定义VM选项"。
直接上配置。
# custom IntelliJ IDEA VM options
##################JVM模式############################
# IDEA的JVM以Server模式启动(新生代默认使用ParNew)
-server
##################内存分配############################
# 堆初始值占用
-Xms2048m
# 堆最大值占用
-Xmx3500m
# Metaspace 空间大小
-XX:MaxMetaspaceSize=512m
-XX:MetaspaceSize=128m
# 强制JVM在启动时申请到足够的堆内存(否则IDEA启动时堆初始大小不足3g)
# -XX:+AlwaysPreTouch
# 年轻代与老年代比例为1:3(默认值是1:4),降低年轻代的回收频率
-XX:NewRatio=3
# 每个线程堆栈的大小 2m
# -Xss2m
##################老年代回收器############################
# 使用CMS老年代回收器
# -XX:+UseConcMarkSweepGC
# CMS的重新标记步骤:多线程一起执行
# -XX:+CMSParallelRemarkEnabled
# 使用 G1 (Garbage First) 垃圾收集器 (因为本地是JDK版本是JDK8,所以启用G1收集器,8以下的可以试用CMS收集器)
-XX:+UseG1GC
# 设置垃圾收集器在并行阶段使用的线程数[一般设置为本机CPU线程数相等,即本机同时可以处理的个数,设置过大也没有用]
-XX:ParallelGCThreads=4
# 并发垃圾收集器使用的线程数量 启用4个线程并发标记(理论上越多越好,前提是CPU核心足够多)
-XX:ConcGCThreads=2
##################JIT编译器############################
# 代码缓存,用于存放Just In Time编译后的本地代码,如果塞满,JVM将只解释执行,不再编译native代码。
-XX:ReservedCodeCacheSize=512m
# 分层编译,JIT编译优化越来越好,IDEA运行时间越久越快
-XX:+TieredCompilation
# 节省64位指针占用的空间,代价是JVM额外开销
# -XX:+UseCompressedOops
# 增大软引用在JVM中的存活时长(堆空闲空间越大越久)
-XX:SoftRefLRUPolicyMSPerMB=50
-Dsun.io.useCanonCaches=false
-Djava.net.preferIPv4Stack=true
# -Djsse.enableSNIExtension=false
##################日志############################
# 禁止在启动期间显式调用System.gc()
-XX:+DisableExplicitGC
# 字体
-Dawt.useSystemAAFontSettings=lcd
# 关闭 fast throw 优化
-XX:-OmitStackTraceInFastThrow
-XX:ErrorFile=$USER_HOME/java_error_in_idea_%p.log
# 当堆内存空间溢出时输出堆的内存快照
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=$USER_HOME/java_error_in_idea.hprof
# 打印GC详细信息
-XX:+PrintGCDetails
# 打印CG发生的时间戳
-XX:+PrintGCTimeStamps
# 每一次GC前和GC后,都打印堆信息
-XX:+PrintHeapAtGC
-Xbootclasspath/a:../lib/boot.jar
-Dfile.encoding=UTF-8
-XX:MaxInlineLevel=3
##################其他设置############################
# 启动断言
-ea
-Dsun.java2d.renderer=sun.java2d.marlin.MarlinRenderingEngine
# 去除字节码验证
-Xverify:none
插件
IntelliJ IDEA 安装了大量的插件,可以根据自己的习惯取消掉一些。选择“帮助” -> "活动监视器"可以看到内部活动占CPU的百分比,如果有没必要的活动占据了大量的插件,那么可以停掉该插件,或者直接卸载。
活动监视器
插件的启动性能分析
相信我,你并不需要那么多的智能提示。阿里巴巴的代码检查挺好的,但是如果性能不允许,可以关闭实时监测,而且在代码编写的时候,可能会跟某些工具类产生冲突,比如Vert.x,导致CPU跑慢,只能杀死进程。
来源:https://juejin.im/post/5ef9966ff265da22d466e5bc


猜你喜欢
- 使用Kotlin的Lambda表达式,我们可以抛弃回调接口的使用。只需设置希望后面会被调用的函数即可。示例如下新建一个Kotlin类clas
- 问题:对于多线程编程,很多时候往往需要向线程中传递多个参数,而C#中的线程只接收1个object类型的参数(如下):Thread t = n
- 前言更新都写完了,但是要更新文件要怎么操作呢?连接服务器然后上传上去,修改下xml的版本号当然也是可以的,但是还是没有写个程序使用起来方便,
- Android短信验证码功能,供大家参考,具体内容如下1、参考资料Mob网站:http://www.mob.com/Mob在Github上的
- 前言在前后端分离开发的时候我们需要用到参数校验,前端需要进行参数校验,后端接口同样的也需要,以防传入不合法的数据。1、首先还是先导包,导入p
- 如何检查一个数组(无序)是否包含一个特定的值?这是一个在Java中经常用到的并且非常有用的操作。同时,这个问题在Stack Overflow
- 本文实例讲述了C#判断多个文本框是否为空的方法。分享给大家供大家参考。具体实现方法如下:/// <summary>/// 自定义
- package com.test; import java.io.BufferedReader; import jav
- 安卓自定义分段式的进度条,供大家参考,具体内容如下前一段时间公司新项目接到一个新需求,其中界面需要用到一个分段式的进度条,找了半天没有发现类
- 目录1、IP地址2、端口3、通信协议3.1 TCP/IP协议簇:实际上是一组协议3.2 TCP UDP对比3.3 TCP实现聊天3.4 TC
- 前言aop面向切面编程,是编程中一个很重要的思想本篇文章主要介绍的是SpringBoot切面Aop的使用和案例什么是aopAOP(Aspec
- 本文实例讲述了C#实现Base64处理的加密解密,编码解码。分享给大家供大家参考,具体如下:using System;using Syste
- 下面一段内容有项目需求有项目分析,通过一个小demo给大家展示下C#如何对多线程、多任务管理的。项目需求:假设多个任务需要执行,每个任务不是
- /// <summary> /// 转义字符
- 代码案例一:private void button1_Click(object sender, EventArgs e) &n
- drawerLayout是Support Library包中实现了侧滑菜单效果的控件,可以说drawerLayout是因为第三方控件如Men
- 一、概念从本质上来说,它就是一个匿名函数,可以用来直接实现接口中的方法,从而简化代码。但是Lambda有一个限制,不能实现接口中的所有方法,
- 前言:这里记录了我在学习Skyline二次开发中所遇到的问题,适合刚接触Skyline二次开发的同学查看使用,从逻辑到代码逐一详解,但是还是
- 题目给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。示例 1:输入: 123输出: 321 示例
- 1.过滤器 (Filter)过滤器的配置比较简单,直接实现Filter 接口即可,也可以通过@WebFilter注解实现对特定URL拦截,看