课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
java虚拟机的应用是程序员在学习java编程开发语言需要重点掌握的一个编程知识,而今天我们急救通过案例分析来了解一下,java虚拟机垃圾回收与内存泄漏问题。
我们经常会听到GC调优,实际不管什么垃圾回收器和回收算法,先得理解垃圾回收原理,然后保证写出的代码没有问题,不然换垃圾回收器和算法都无法阻止内存溢出问题,加jvm大内存也只不过延迟出现问题时间;
擅于借助工具的使用,如果没有grafana监控后台、hulk的监控wonder后台、java自带工具、mat分析工具很难快速解决问题,在这里还推荐一个阿里的jvm监控工具Arthas,也是一个不错的选择
查看数据指标作为依据,不能凭空猜测和先入为主(由于当时先入为主,认为是服务器系统的问题而走了弯路,导致解决问题的时间延长),定位问题,还必须要知道java常见的问题和对应的数据指标现象,综合分析便能迅速找到原因。
例如:
内存泄露:应用占用cpu高,运行一段时间,频繁fullGC,但不马上抛内存溢出;
死锁:应用占用cpu高,gc无明显异常,jstack命令可以发现deadlock
OOM:这个看日志就能看出来,线程过多unabletocreateThread,堆溢出:javaheapspace
某线程占用cpu高:通过top命令查找java线程占用cpu高的,jstack命令分析线程栈信息
【免责声明】本文系本网编辑部分转载,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与管理员联系,我们会予以更改或删除相关文章,以保证您的权益!更多内容请在707945861群中学习了解。