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性能优化内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • IntelliJ IDEA快速创建getter和setter方法

    IntelliJ IDEA快速创建getter和setter方法

    这篇文章主要介绍了IntelliJ IDEA快速创建getter和setter方法,本文通过图文实例相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-03-03
  • Java并发编程之锁、并发容器、阻塞队列与异步编程实战代码

    Java并发编程之锁、并发容器、阻塞队列与异步编程实战代码

    这篇文章主要介绍了Java并发编程之锁、并发容器、阻塞队列与异步编程的相关资料,分别是ReentrantLock的灵活锁机制、ConcurrentHashMap的高性能并发设计、BlockingQueue的生产者、消费者模式及CompletableFuture的异步编程能力,需要的朋友可以参考下
    2026-06-06
  • Java ExecutorService四种线程池使用详解

    Java ExecutorService四种线程池使用详解

    这篇文章主要介绍了Java ExecutorService四种线程池使用详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-02-02
  • Java实现带头结点的单链表

    Java实现带头结点的单链表

    这篇文章主要为大家详细介绍了Java实现带头结点的单链表,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-09-09
  • 详解application.properties和application.yml文件的区别

    详解application.properties和application.yml文件的区别

    这篇文章主要介绍了详解application.properties和application.yml文件的区别,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-01-01
  • java如何拷贝复制对象和集合问题

    java如何拷贝复制对象和集合问题

    这篇文章主要介绍了java如何拷贝复制对象和集合问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • SpringBoot集成和使用RabbitMQ方式

    SpringBoot集成和使用RabbitMQ方式

    本文介绍了如何在SpringBoot项目中集成RabbitMQ,并结合死信队列实现延时消息,通过这些配置和机制,开发者可以在分布式系统中构建更为灵活和可靠的消息传递系统
    2024-12-12
  • HttpServletResponse乱码问题_动力节点Java学院整理

    HttpServletResponse乱码问题_动力节点Java学院整理

    这篇文章主要介绍了HttpServletResponse乱码问题,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07
  • Java整合RabbitMQ实现五种常见消费模型

    Java整合RabbitMQ实现五种常见消费模型

    本文将深入介绍RabbitMQ的五种常见消费模型,包括简单队列模型、工作队列模型、发布/订阅模型、路由模型和主题模型,删除线格式并探讨它们各自的优缺点和适用场景,感兴趣的可以了解一下
    2023-11-11
  • SpringBoot WebService服务端&客户端使用案例教程

    SpringBoot WebService服务端&客户端使用案例教程

    这篇文章主要介绍了SpringBoot WebService服务端&客户端使用案例教程,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2023-10-10

最新评论