idea debug 启动慢出现假死
断点设置不合理引发应用启动慢
问题
java idea应用启动很慢|非常慢|超级慢的问题排查!
解决
关于应用启动超慢这个问题,其实两年前就已经遇到过,https://blog.csdn.net/li396864285/article/details/52944814 当时的解决方案时,把所有断点Mute breakPoints去掉,然后启动就正常了。
排查
如今,再次遇到这个问题,不能再忍了,该问题必须查明详细的原因,反复debug启动多次都是一样的结果,超慢,阻塞在连接zk的地方就不动了,debug窗口出现如下信息:Method breakpoints may dramatically slow down debugging。
分析
果然,断点打在了不该打的地方,当程序启动一直阻塞假死的同时,电脑也卡得不行。于是使用top 命令观察性能和资源消耗情况,启动的java进程一直占用cpu接近100%。
总结
反复试验过后,得出猜测的结论:当我们把断点打在方法上,会导致jvm初始化装载该类的时候,idea加载此时的debug信息(包括线程上下文,变量快照等),从而出现异常情况,一直循环加载debug信息无果,最终出现程序假死,阻塞启动。
断点无论是加在类的方法,还是接口的方法上,都会出现上面的启动慢,程序假死的情况。
另附
附图说明如下:




版权声明:本文为博主原创文章,转载请附上博文链接!
idea debug 启动慢出现假死的更多相关文章
- WinForm程序界面假死,寻求完美解决方案
故事的开端是这样的,小白是一个程序员,他确实也是一个小白,目前还在程序员发展的道路上,兢兢业业的小心求学. 有一天,小白接到一个任务,完成一个Winform程序,附加一个功能就是可以读IC卡. 小白终 ...
- 解决android studio 创建新项目后假死
概况:升级sdk编译api后,创建新的android项目后,在构建过程中假死:原有创建的项目 均运行正常:但是新建的项目只要build,电脑除了鼠标之外的,什么都动不了. 通过一系列的折腾,并重启了N ...
- 千万别在UI线程上调用Control.Invoke和Control.BeginInvoke,因为这些是依然阻塞UI线程的,造成界面的假死
原文地址:https://www.cnblogs.com/wangchuang/archive/2013/02/20/2918858.html .c# Invoke和BeginInvoke 区别 Co ...
- vs2017切换设计、拆分假死的解决
今天安装了vs2017版把vs2015卸载了,原因就是vs2015运行webform后ajaxpro总是会出现time out现象.太难受了,所以决定体验一下新版本. 安装了vs2017后ajaxpr ...
- 解决因为终端打印造成的java程序假死
问题状态: java 程序 日志采用 log4j 运行时由另一个管理进程拉起,程序在后台运行. 现象: 程序后台运行时,运行一段时间后假死 分析原因: 尝试打印输出,定位假死的具体位置,发现出现假死的 ...
- C#中异步及winform中界面假死
c#中可以用BeginInvoke去启动异步调用,但是有两个BeginInvoke一个是controller的BeginInvoke还有一个是委托的BeginInvoke. 主要区别是controll ...
- 完美解决windows10磁盘占用100%并出现卡顿、假死无反应
完美解决windows10磁盘占用100%并出现卡顿.假死无反应 想必大家也跟我一样,自从用win10系统以后经常会出现这种情况:磁盘突然占用100%然后开始出现假死现象,电脑卡住,点击任何软件没反应 ...
- MySQL如果频繁的修改一个表的数据,那么这么表会被锁死。造成假死现象。
MySQL如果频繁的修改一个表的数据,那么这么表会被锁死.造成假死现象. 比如用Navicat等连接工具操作,Navicat会直接未响应,只能强制关闭软件,但是重启后依然无效. 解决办法: 首先执行: ...
- FTPClient下载文件,程序假死问题
[所属类包] org.apache.commons.net.ftp.FTPClient [现象描述] 这两天java项目中用到了FTP下载,像之前的项目写好代码,但是点击下载后,程序调试到下面这一行, ...
随机推荐
- sqlserver中xml查询
DECLARE @DOC XML =' <books> <book category="C#"> <title language="e ...
- flume 转
http://blog.csdn.net/xiao_jun_0820/article/details/38111305
- 86. Partition List (List)
Given a linked list and a value x, partition it such that all nodes less than x come before nodes gr ...
- linux 安装天气插件
1. 用命令 sudo apt install gnome-shell-extension-weather 安装插件 但是在那之前你安装了 GNOME Shell Extensions 如果没有安装 ...
- 少一些套路,多一些真诚 ——groovy消灭表现层套路
初次认识groovy是在2009年,当时看了Manning出版的<Groovy in Action 1st Edition>,对groovy这个语言的交互性shell,以及灵活的语法留 ...
- 洛谷 P3092 [USACO13NOV]没有找零No Change
题目描述 Farmer John is at the market to purchase supplies for his farm. He has in his pocket K coins (1 ...
- C++获取字符串长度数
strlen,获取到的是字节数,中文占两个字节. 如何获取字符数,无论中文英文,标点符号,都按一个字符计算呢?这里提供其中的一个方法.那就是通过MultiByteToWideChar函数,将CStri ...
- Java Persistence with MyBatis 3(中文版) 第五章 与Spring集成
MyBatis-Spring是MyBatis框架的子模块,用来提供与当前流行的依赖注入框架Spring的无缝集成. Spring框架是一个基于依赖注入(Dependency Injection)和面向 ...
- mysql存储过程和触发器
mysql编程(存储过程和触发器) 存储过程 什么是存储过程 存储过程,带有逻辑的sql语句 存储过程特点 执行效率非常快!存储过程是在数据库的服务器端执行的!!! 移植性很差!不同数据库的存储过程是 ...
- 【转载】MySQL常用系统表大全
转载地址:http://blog.csdn.net/xlxxcc/article/details/51754524 MySQL5.7 默认的模式有:information_schema, 具有 61个 ...