IntelliJ IDEA编辑文件的时候CPU飙高问题的解决
原文地址:https://www.javatang.com/archives/2018/04/26/25582403.html
上篇文章中说明了解决IntelliJ IDEA中文输入法无提示的问题,最近将IntelliJ IDEA升级到了最新的2018.1,发现在编辑文件的时候CPU飙高,从而显得有一些卡顿。于是开始下面的一些设置:
目录 [隐藏]
软硬件环境
CPU: Intel i7 4核
内存:16G
IntelliJ IDEA版本:2018.1
操作系统:Windows 7
设置JVM的启动参数
首先修改和idea64.exe文件同目录的idea64.exe.vmoptions文件(32位的文件名为idea.exe.vmoptions),开启server模式并加大最大内存,内容如下:
-server
-Xms1024m
-Xmx2048m
-Xverify:none
-XX:ReservedCodeCacheSize=240m
-XX:+UseConcMarkSweepGC
-XX:SoftRefLRUPolicyMSPerMB=50
-ea
-Dsun.io.useCanonCaches=false
-Djava.net.preferIPv4Stack=true
-XX:+HeapDumpOnOutOfMemoryError
-XX:-OmitStackTraceInFastThrow
PS1: 也可以通过 Help - Edit Custom VM Options...菜单设置jvm的配置,这样设置的话会在 <idea.config.path> 的config目录下生成一个idea64.exe.vmoptions文件,IntelliJ会优先使用这个地方的配置文件。
PS2: 通过下面的设置可以在右下角查看内存的设置及使用情况:
设置编译和Maven的JVM内存
因为设置成了自动编译,并且发现保存文件的时候CPU瞬间飙高,所以需要将编译进程和Maven的堆值设置大一些,见下图:

取消除了Error级别之外的代码检查
IntelliJ的代码检测功能非常强大,但同时也占用了一些资源,可以将默认的除 Error之外的其他级别的检测都去掉,先做下面的筛选,然后逐个勾掉即可:
更改启动的JDK
更改启动的JDK的方法在 JetBrains系列(IntelliJ IDEA、WebStorm等)中文输入法无提示问题的解决 这篇文章里面有详细的介绍,针对IntelliJ 2018.1来说,最后检测下来最新版的jbsdk8u152b1248.5整体感觉还不错,可以在 https://dl.bintray.com/jetbrains/intellij-jdk/ 进行下载。
清空缓存并重建索引
在做完上述设置之后,最好通过点击 File -> Invalidate Caches / Restart...菜单,然后点击 Invalidate and Restart按钮清空并重建索引,然后重启。再次启动程序之后,会首先重建索引和缓存。
升级到 2018.2
上述的这些方法虽然有一些改善,但还没有彻底的解决这个问题。不过根据JetBrains官方的 ISSUE#JRE-365、ISSUE#IDEA-185075、ISSUE#IDEA-183973显示,最终解决的版本都是 2018.2,所以还是静候并升级到最新版本吧。
参考资料:
Intellij IDEA 2016.2 high CPU usage
intellij idea cpu占用率太大太满 运行速度太慢 使了五个解决方法最终成功
Related Posts:
IntelliJ IDEA编辑文件的时候CPU飙高问题的解决的更多相关文章
- 记一次yarn导致cpu飙高的异常排查经历
yarn就先不介绍了,这次排坑经历还是有收获的,从日志到堆栈信息再到源码,很有意思,下面听我说 问题描述: 集群一台NodeManager的cpu负载飙高. 进程还在但是看日志已经不再向Resourc ...
- 现网CPU飙高,Full GC告警
现网CPU飙高,Full GC告警 https://www.cnblogs.com/QG-whz/p/9647614.html 问题出现:现网CPU飙高,Full GC告警 CGI 服务发布到现网后, ...
- 一次FGC导致CPU飙高的排查过程
今天测试团队反馈说,服务A的响应很慢,我在想,测试环境也会慢?于是我自己用postman请求了一下接口,真的很慢,竟然要2s左右,正常就50ms左右的. 于是去测试服务器看了一下,发现服务器负载很高, ...
- 如何优雅排查现网服务器cpu飙高的问题
1.排查现网服务器cpu飙高问题的思路 1.查看java进程id ps -ef|grep java 2.使用top -Hp 进程id 查看cpu比较高的线程 3.执行jstack 进程id > ...
- 【面试普通人VS高手系列】CPU飙高系统反应慢怎么排查?
面试过程中,场景类的问题更容易检测出一个开发人员的基本能力. 这不,一个小伙伴去阿里面试,第一面就遇到了关于"CPU飙高系统反应慢怎么排查"的问题? 对于这个问题,我们来看看普通人 ...
- 系统CPU飙高,怎么排查?
cpu是整个电脑的核心计算资源,对于一个应用进程来说,cpu的最小执行单元是线程. 导致cpu飙高的原因有几个方面: cpu上下文切换过多,对于cpu来说,同一时刻下每个cpu核心只能运行一个线程,如 ...
- 生产系统CPU飙高问题排查
现状 生产系统CPU占用过高,并且进行了报警 排查方法 执行top命令,查看是那个进程导致的,可以确定是pid为22168的java应用导致的 执行top -Hp命令,查看这个进程的那个线程导致cpu ...
- java进程CPU飙高
因为这段时间一直在弄监控,但是工作还是在进行中 因为机器不多,所以今天早上巡检了一下,看到一台生产机器上的CPU飙高 top
- STORM在线业务实践-集群空闲CPU飙高问题排查
源:http://daiwa.ninja/index.php/2015/07/18/storm-cpu-overload/ 2015-07-18AUTHORDAIWA STORM在线业务实践-集群空闲 ...
随机推荐
- vue-learning:33 - component - 内置组件 - 过渡组件transition
vue内置过渡组件transition 目录 什么是过渡 基本过渡或动画实现的语法 css过渡动画:transition / animation js过渡:特定事件钩子函数 各种情形下的过渡实现,使用 ...
- url查找参数
function GetUrlParam(paraName) { var url = document.location.toString(); var arrObj = url.split(&quo ...
- 2018-11-9-win2d-CanvasCommandList-使用方法
title author date CreateTime categories win2d CanvasCommandList 使用方法 lindexi 2018-11-9 20:8:4 +0800 ...
- vue-cli 3.0 eslint
1.关闭eslint module.exports = { configureWebpack: { devtool: 'source-map' }, lintOnSave: false } 2.修改e ...
- gulp插件使用
//引入gulp组件 var gulp=require('gulp'); //创建任务 gulp.task('hello',function(){ console.log('hello'); }); ...
- windows系统锁屏及修改密码项目开发经验记录
改造windows开机.锁屏登录流程需要使用微软停供的Credential Providers工程,编译出来是dll,安装在C:\windows\system32目录下,然后注册注册表(运行工程生成的 ...
- lumen简单使用exel组件
1.首先打开命令行,进入到lumen项目的根目录中,然后用composer下载excel组件 composer require maatwebsite/excel ~2.1.0 2.安装成功后,在bo ...
- lambda应用
def test(a, b, func): result = func(a, b) print(result) test(10, 15, lambda x, y: x + y) #coding=utf ...
- 2019 沈阳网络赛 Fish eating fruit
这题看了三个月,终于过了,第一次看的时候没学树形DP,想用点分治但是不会 后来学了二次扫描,就有点想法了.... 这东西也真就玄学了吧... #include<iostream> #inc ...
- 百度地图addEventListener“赋值”参数
实现点击百度地图上的覆盖物,然后获取覆盖上的属性,进而实现数据传送. var pointArray=new Array();//创建一个数组存储坐标 /*在地图上标点*/ function ShowA ...