当前位置: 首页 > 编程笔记 >

IntelliJ IDEA优化配置的实现

酆光熙
2023-03-14
本文向大家介绍IntelliJ IDEA优化配置的实现,包括了IntelliJ 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跑慢,只能杀死进程。

到此这篇关于IntelliJ IDEA优化配置的实现的文章就介绍到这了,更多相关IDEA优化配置内容请搜索小牛知识库以前的文章或继续浏览下面的相关文章希望大家以后多多支持小牛知识库!

 类似资料:
  • 本文档介绍如何对迁移任务的配置进行优化,从而提高 DM 的数据迁移性能。 全量导出 全量导出相关的配置项为 mydumpers,下面介绍和性能相关的参数如何配置。 rows 设置 rows 选项可以开启单表多线程并发导出,值为导出的每个 chunk 包含的最大行数。开启后,DM 会在 MySQL 的单表并发导出时,优先选出一列做拆分基准,选择的优先级为主键 > 唯一索引 > 普通索引,选出目标列后

  • 本文向大家介绍MySQL5.6基本优化配置,包括了MySQL5.6基本优化配置的使用技巧和注意事项,需要的朋友参考一下 下面开始优化下my.conf文件(这里的优化只是在mysql本身的优化,之前安装的时候也要有优化) cat /etc/my.cnf # For advice on how to change settings please see # http://dev.mysql.com/d

  • gateway 是 ES 设计用来长期存储索引数据的接口。一般来说,大家都是用本地磁盘来存储索引数据,即 gateway.type 为 local。 数据恢复中,有很多策略调整我们已经在之前分片控制小节讲过。除开分片级别的控制以外,gateway 级别也还有一些可优化的地方: gateway.recover_after_nodes 该参数控制集群在达到多少个节点的规模后,才开始数据恢复任务。这样可

  • 本文向大家介绍优化MyBatis配置文件中的配置详解,包括了优化MyBatis配置文件中的配置详解的使用技巧和注意事项,需要的朋友参考一下 本文研究的主要是优化MyBatis配置文件中的配置的相关内容,具体介绍如下。 一、连接数据库的配置单独放在一个properties文件中   之前,我们是直接将数据库的连接配置信息写在了MyBatis的conf.xml文件中,如下: 其实我们完全可以将数据库的

  • Tomcat 8 安装 Tomcat 8 安装 官网:http://tomcat.apache.org/ Tomcat 8 官网下载:http://tomcat.apache.org/download-80.cgi 此时(20160207) Tomcat 8 最新版本为:apache-tomcat-8.0.32.tar.gz 我个人习惯 /opt 目录下创建一个目录 setups 用来存放各种软件

  • 本文向大家介绍Android 优化之卡顿优化的实现,包括了Android 优化之卡顿优化的实现的使用技巧和注意事项,需要的朋友参考一下 Android 系统每隔 16ms 会发出 VSYNC 信号重绘界面(Activity)。之所以是 16ms,是因为 Android 设定的刷新率是 60FPS(Frame Per Second),也就是每秒 60 帧的刷新率,约合 16ms 刷新一次。 这就意味

  • Android 版本大于4.4,需要将自动播放权限打开 参考代码: WebView.getSettings().setMediaPlaybackRequiresUserGesture(false) 参考链接: https://developer.android.com/reference/android/webkit/WebSettings.html#setMediaPlaybackRequire

  • 前言 上文讲到 HTTPS 对用户访问速度的影响。 本文就为大家介绍 HTTPS 在访问速度,计算性能,安全等方面基于协议和配置的优化。 HTTPS 访问速度优化 Tcp fast open HTTPS 和 HTTP 使用 TCP 协议进行传输,也就意味着必须通过三次握手建立 TCP 连接,但一个 RTT 的时间内只传输一个 syn 包是不是太浪费?能不能在 syn 包发出的同时捎上应用层的数据?