设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 数据 创业者 手机
当前位置: 首页 > 服务器 > 安全 > 正文

IntelliJ IDEA 性能优化的教程详解

发布时间:2020-06-15 18:47 所属栏目:53 来源:站长网
导读:副标题#e# idea打开的多了 内存占用也就多了 下边是亲试的优化ide性能的方法 1.设置JVM的启动参数: 进入idea的安装目录的bin文件夹 打开 idea.exe.vmoptions 文件, 修改-Xmx 的 值为2048m 打开 idea64.exe.vmoptions 文件, 修改-Xmx 的 值为2048m 打开id

idea打开的多了 内存占用也就多了 下边是亲试的优化ide性能的方法

1.设置JVM的启动参数:

  进入idea的安装目录的bin文件夹

  打开 idea.exe.vmoptions 文件, 修改-Xmx 的 值为2048m

  打开 idea64.exe.vmoptions 文件, 修改-Xmx 的 值为2048m

  

  打开idea.properties文件,找到idea.max.intellisense.filesize,默认是2500,改为25000(数值仅供参考,具体数值根据自己文件大小来定)

  参数作用:

    -Xms1024m 设置初时的内存大小,提高Java程序的启动速度
    -Xmx2048m 设置最大内存数,提高该值,可以减少内存Garage收集的频率,提高程序性能
    -XX:ReservedCodeCacheSize=480m设置代码内存容量
    -XX:+UseParNewGC 使用并行收集算法
    -server 控制内存garage方式,这样你无需在花一到两分钟等待内存garage的收集

2.菜单配置设置JVM的启动参数:通过Help - Edit Custom VM Options...菜单设置配置,IntelliJ会优先使用这个地方的配置文件

3.关闭代码检查:  

IntelliJ的代码检测功能非常强大,但也占用了一些资源,可以将默认的除 Error之外的其他级别的检测都去掉  

4.清空缓存并重建索引:

  将编译进程和Maven的堆值设置大一些

  

ps:下面看下IntelliJ IDEA 更新后,电脑卡成球,该如何优化?

来源 | https://urlify.cn/NBBbam

在和同事的一次讨论中发现,对 IntelliJ IDEA 内存采用不同的设置方案,会对 IDE 的速度和响应能力产生不同的影响。

Don't be a Scrooge and give your IDE some more memory

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

昨天,大家就是否自定义IntelliJ IDEA 的内存设置进行了讨论,有些人选择默认设置,有些人会对默认的设置进行简单的变更,还有一些开发者会基于他们的需求进行全面复杂的设置。笔者目前的工作是处理几个微服务项目和一个老项目,而客户的核心业务需求非常大。对 IntelliJ IDEA 内存进行简单设置以后,笔者明显感受到了该 IDE 在速度和响应方面的改善。但当时笔者并未进行具体的测量,所以这只是主观感受而已。

不过,参与讨论的一位开发者给笔者发了一份他的设置,虽然是针对同个项目,该设置却极其复杂。笔者对自己的设置并无不满,但非常好奇,这些完全不同的设置对比 JetBrains 提供的默认设置,会有怎样的不同。

目标

笔者的计划是,在一个接近日常开发项目的场景下(加载一个大项目、加载2、3个微服务、git pull 后刷新大项目),测试各个设置带来的效果,并选出内存消耗和速度都达到最优时的最佳设置。

测试机器和项目

笔记本电脑:MacBook Pro Retina, 2.3GHz Intel Core i7, 16GB 1600Mhz DDR3,SSD Disc, OS X Yosemite

项目

大项目—— Monolith ,70万行代码( Java[1] 8 和 Groovy ),303个Gradle模块

两个微服务——约有10000——20000行代码( Java 8 和 Groovy )的小项目,各有一个Gradle模块

测试场景

在 Idea 中关闭所有项目

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

重启电脑

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

打开 Idea(测试时间)

打开大项目(测试时间)

检查 jstat -gcutil

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

检查 jstat -gcutil

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

检查 jstat -gcutil

jstat -gcutil

jstat 是 JDK 自带的工具,主要利用 JVM 内建的指令对 Java 应用程序的资源和性能进行实时的命令行监控,还包括对 Heap size 和垃圾回收状况的监控。它有许多选项来收集各种数据,但这里只会用到: 

-gcutil :

-gcutil - Summary of garbage collection statistics.
S0: Survivor space 0 utilization as a percentage of the space's current capacity.
S1: Survivor space 1 utilization as a percentage of the space's current capacity.
E: Eden space utilization as a percentage of the space's current capacity.
O: Old space utilization as a percentage of the space's current capacity.
M: Metaspace utilization as a percentage of the space's current capacity.
CCS: Compressed class space utilization as a percentage.
YGC: Number of young generation GC events.
YGCT: Young generation garbage collection time.
FGC: Number of full GC events.
FGCT: Full garbage collection time.
GCT: Total garbage collection time.

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

S0     S1    E     O     M    CCS  YGC YGCT FGC  FGCT   GCT
89.70 0.00 81.26 74.27 95.68 91.76 40 2.444 14  0.715  3.159

在本文中,最重要的参数是 GC 事件( YGC 和 FGC )次数和收集时间( YGCT 和 FGCT )。

测试设置

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

默认(灰色标识)

JetBrains 提供的默认设置:

-Xms128m
-Xmx750m
-XX:MaxPermSize=350m
-XX:ReservedCodeCacheSize=240m
-XX:+UseCompressedOops

Big(大)(红色标识)

给 Xmx 配 4096MB, ReservedCodeCacheSize 设置 1024MB,这已经是相当多的内存了:

-Xms1024m
-Xmx4096m
-XX:ReservedCodeCacheSize=1024m
-XX:+UseCompressedOops

Balanced(平衡的)(蓝色标识)

Xmx 和 Xms 都分配 2GB ,这是相当平衡的内存消耗:

-Xms2g
-Xmx2g
-XX:ReservedCodeCacheSize=1024m
-XX:+UseCompressedOops

Sophisticated(复杂的)(橘色标识)

和上面一样, Xmx 和 Xms 都分配2GB,但是给 GC 和内存管理指定不同的垃圾回收器和许多不同的标志:

(编辑:ASP站长网)

网友评论
推荐文章
    热点阅读