IDEA性能优化设置(解决卡顿问题)

 更新时间:2023年05月25日 15:53:51   作者:ThinkStu  
在我们日常使用IDEA进行开发时,可能会遇到许多卡顿的瞬间,本文主要介绍了IDEA性能优化设置,非常具有实用价值,需要的朋友可以参考下

在我们日常使用IDEA进行开发时,可能会遇到许多卡顿的瞬间,明明我们的机器配置也不低啊?为什么就会一直卡顿呢?

原来这是因为IDEA软件在我们安装的时候就设置了默认的内存使用上限(通常很小),这就是造成我们使用IDEA时卡顿的根本原因。比如我这台电脑,明明是16GB的运行内存,但是IDEA默认给我分配的使用上限是1GB,当我运行大量代码时自然而然的就会产生卡顿。

我们可以通过显示内存使用情况来查看当前项目占用的内存大小。

可以看到当前我的程序占用了690MB的内存,而上限是1024MB(在性能突发时完全承受不住)。我们可以通过进入IDEA的设置来更改这些配置。

具体步骤:(三步)

1. 选择顶部导航栏中的Help,然后点击Edit Custom VM Options(自定义虚拟机内存)。

 2. 接下来我们将会看到这个界面:

-Xmx1024m    // 最大内存上限为:1024MB(1GB)
-Xms256m     // 初始内存分配大小为:256MB
-XX:ReservedCodeCacheSize=128m    //代码缓冲区大小:128MB
-XX:+UseG1GC

我们对其进行适当的修改(具体根据个人电脑配置),并保存文件:

-Xmx4096m
-Xms4096m
-XX:ReservedCodeCacheSize=256m
-XX:+UseG1GC

3. 缓存清理(使新配置生效):

选择 File ---> Invalidate Caches(清理无效的缓存) 

保持默认的选项,选择确定清理缓存并重启IDEA (结束)。

好了,最后我们来看一下重启之后的IDEA效果~没错,很流畅

另外说一句,JetBrains系列的产品都可以通过这种设置来解决卡顿的问题。没错,包括PyCharm、Android Studio、WebStorm等,其余参数说明如下:

参数说明:

  • -server:一定要作为第一个参数,在多个CPU时性能佳
  • -Xms:初始Heap大小,使用的最小内存,cpu性能高时此值应设的大一些
  • -Xmx:java heap最大值,使用的最大内存
  • -XX:PermSize:设定内存的永久保存区域
  • -XX:MaxPermSize:设定最大内存的永久保存区域
  • -XX:MaxNewSize:
  • +XX:AggressiveHeap 使 Xms 失去意义。
  • -Xss:每个线程的Stack大小
  • -verbose:gc 现实垃圾收集信息
  • -Xloggc:gc.log 指定垃圾收集日志文件
  • -Xmn:young generation的heap大小,一般设置为Xmx的3、4分之一
  • -XX:+UseParNewGC :缩短minor收集的时间
  • -XX:+UseConcMarkSweepGC :缩短major收集的时间

提示:此选项在Heap Size 比较大而且Major收集时间较长的情况下使用更合适。

到此这篇关于IDEA性能优化设置(解决卡顿问题)的文章就介绍到这了,更多相关IDEA性能优化内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java基础MAC系统下IDEA连接MYSQL数据库JDBC过程

    Java基础MAC系统下IDEA连接MYSQL数据库JDBC过程

    最近一直在学习web项目,当然也会涉及与数据库的连接这块,这里就总结一下在IDEA中如何进行MySQL数据库的连接,这里提一下我的电脑是MAC系统,使用的编码软件是IDEA,数据库是MySQL
    2021-09-09
  • mybatisplus添加真正的批量新增、批量更新的实现

    mybatisplus添加真正的批量新增、批量更新的实现

    这篇文章主要介绍了mybatisplus添加真正的批量新增、批量更新的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • Java中Thread.join()的使用方法

    Java中Thread.join()的使用方法

    这篇文章主要介绍了Java中Thread.join()的使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-07-07
  • Java多线程CountDownLatch的实现

    Java多线程CountDownLatch的实现

    本文主要介绍了Java多线程CountDownLatch的实现,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02
  • 基于Retrofit+Rxjava实现带进度显示的下载文件

    基于Retrofit+Rxjava实现带进度显示的下载文件

    这篇文章主要为大家详细介绍了基于Retrofit+Rxjava实现带进度显示的下载文件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-05-05
  • java 数据结构 冒泡排序实现代码

    java 数据结构 冒泡排序实现代码

    这篇文章主要介绍了java 数据结构 冒泡排序的相关资料,并附实例代码,有需要的小伙伴可以参考下
    2016-09-09
  • SpringMVC将请求和响应的数据转换为JSON格式的几种方式

    SpringMVC将请求和响应的数据转换为JSON格式的几种方式

    这篇文章主要给大家介绍饿了SpringMVC将请求和响应的数据转换为JSON格式的几种方式,文中通过代码示例和图文结合给大家介绍的非常详细,具有一定的参考价值,需要的朋友可以参考下
    2023-11-11
  • Java非递归实现删除任意目录的方法

    Java非递归实现删除任意目录的方法

    这篇文章主要为大家详细介绍了Java非递归实现删除任意目录的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • Spring Cloud 中自定义外部化扩展机制原理及实战记录

    Spring Cloud 中自定义外部化扩展机制原理及实战记录

    这篇文章主要介绍了Spring Cloud 中自定义外部化扩展机制原理及实战,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-02-02
  • JavaWeb response和request对象原理及实例解析

    JavaWeb response和request对象原理及实例解析

    这篇文章主要介绍了JavaWeb response和request对象原理及实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11

最新评论