⭐⭐⭐ Spring Boot 项目实战 ⭐⭐⭐ Spring Cloud 项目实战
《Dubbo 实现原理与源码解析 —— 精品合集》 《Netty 实现原理与源码解析 —— 精品合集》
《Spring 实现原理与源码解析 —— 精品合集》 《MyBatis 实现原理与源码解析 —— 精品合集》
《Spring MVC 实现原理与源码解析 —— 精品合集》 《数据库实体设计合集》
《Spring Boot 实现原理与源码解析 —— 精品合集》 《Java 面试题 + Java 学习指南》

摘要: 原创出处 blog.csdn.net/xiaoyong5854/article/details/106941975/ 「谢晓永」欢迎转载,保留摘要,谢谢!


🙂🙂🙂关注**微信公众号:【芋道源码】**有福利:

  1. RocketMQ / MyCAT / Sharding-JDBC 所有源码分析文章列表
  2. RocketMQ / MyCAT / Sharding-JDBC 中文注释源码 GitHub 地址
  3. 您对于源码的疑问每条留言将得到认真回复。甚至不知道如何读源码也可以请教噢
  4. 新的源码解析文章实时收到通知。每周更新一篇左右
  5. 认真的源码交流微信群。

背景

昨晚有一次敲完代码运行完程序后,idea非常卡顿,连输入代码都不能进行,因为有点晚并且累了,所有就关了电脑,今天早上再次打开idea,还是一样卡顿。

因为idea的试用期明天就到期了,所有就先破解了idea,破解完之后,还是非常流畅的,但是一运行程序就拉胯了,就先百度看一下解决方案,以下几个解决方案试了,基本问题还是没有解决,就在群里问了几个大佬,方案不是重装系统就是换电脑,同时开始了电脑的配置讨论,重装系统和换电脑的什么是不可能的,所有只有自己慢慢摸索了。

1 修改idea配置文件安装目录下的bin\idea.exe.vmoptions

如图:

结果:配置改完之后,打开项目确实快了点,但是CPU占用率居高不下的问题还是没有解决。

2 关掉代码检查

setting -> Editor -> Inspections,把右面方框框里的对勾全去掉,或者根据需要去掉。原理是关闭不必要的代码检查,提高速度。结果:没啥用!

3 卸载多余的插件

结果:我才刚开始学,都没有用过啥插件,如果选择custom模式,都不明白那些插件是必须的,而且怕万一搞出更大的麻烦,这个方案pass。

4 选择合适的jdk版本

刚开始我配置的时候就是选择官方的1.8jdk版本,并不是idea自带的,而且我关掉这个项目重新打开另一个项目,另一个项目和这个项目的规模大小差不多,都是10个Module左右。

结果:这个方案pass。

这个时候,我看到网上一个方案说可能是内存泄漏,我觉得有点道理,因为我这是昨晚突然CPU占用率过大,电脑自带的风扇呼呼的响,但是我没有使用指针之类的呀,就是练习的多线程。

问题可能就出在这个多线程这里,于是乎我去看了看代码,和视频里老师的代码是一模一样的,我在看了看任务管理器,Intellij IDEA,如图:

没弄好之前,控制台窗口主进程有三个,Java™ Platform SE binary有两个,其中一个的CPU占用率高达80%多,于是我搜了一下,发现就是多线程中的while(true)的原因。当时视频里老师的代码如图:

我后来设置了一个flag标志,当ticket小于0的时候,就令flag = true;问题完美解决。

现在程序运行时IDEA的资源占用率如下:

结语

问题解决了,心情就舒畅多了,就像bug一样,解决的bug愈多,能力和经验就会增加,但是一旦没有得到合理的解决,手里的肉粽子就不香了!

文章目录
  1. 1. 背景
  2. 2. 1 修改idea配置文件安装目录下的bin\idea.exe.vmoptions
  3. 3. 2 关掉代码检查
  4. 4. 3 卸载多余的插件
  5. 5. 4 选择合适的jdk版本
  6. 6. 结语