jvm-42-java 如何获取 jvm thread dump 线程转储文件? jstack / jcmd
拓展阅读
JVM FULL GC 生产问题 I-多线程通用实现
JVM FULL GC 生产问题 II-如何定位内存泄露? 线程通用实现
JVM FULL GC 生产问题 III-多线程执行队列的封装实现,进一步抽象
java 多线程实现通用方法 threadpool implement in java
注意
dump 会导致应用卡主一段时间,建议先下流量+dump
线程转储简...
2018-10-08 15:36:46 |
Java
jvm-41-java 如何获取 jvm memory dump jvm 内存的转存文件? jmap / jcmd /
拓展阅读
JVM FULL GC 生产问题 I-多线程通用实现
JVM FULL GC 生产问题 II-如何定位内存泄露? 线程通用实现
JVM FULL GC 生产问题 III-多线程执行队列的封装实现,进一步抽象
java 多线程实现通用方法 threadpool implement in java
注意
dump 会导致应用卡主一段时间,建议先下流量+dump
Java堆...
2018-10-08 15:36:46 |
Java
jvm-40-java -jar 基础介绍
拓展阅读
JVM FULL GC 生产问题 I-多线程通用实现
JVM FULL GC 生产问题 II-如何定位内存泄露? 线程通用实现
JVM FULL GC 生产问题 III-多线程执行队列的封装实现,进一步抽象
java 多线程实现通用方法 threadpool implement in java
业务说明
今天搭建一下测试环境,太久没搞了。
java -jar xxx....
2018-10-08 15:36:46 |
Java
JVM-36-Profile 对程序进行动态分析
引言
研发人员在遇到线上报警或需要优化系统性能时,常常需要分析程序运行行为和性能瓶颈。
Profiling技术是一种在应用运行时收集程序相关信息的动态分析手段,常用的JVM Profiler可以从多个方面对程序进行动态分析,如CPU、Memory、Thread、Classes、GC等,其中CPU Profiling的应用最为广泛。
CPU Profiling经常被用于分析代码的执行热点...
2018-10-08 15:36:46 |
Java
JVM-35-GoLang GC 于 java 对比
序言
首先强调下本文的起因是在高可用架构后花园群的一次聊天,大家在争论Golang的GC到底是类似Java的ZGC还是类似Java的CMS GC。
我个人的看法是Golang的GC是类似于Java的CMS GC,官方的mgc的注释这么说的:
// The GC runs concurrently with mutator threads, is type accurate (aka p...
2018-10-08 15:36:46 |
Java
JVM-34-生成性能问题定位
1. 代码相关
遇到性能问题,首先应该做的是检查否与业务代码相关——不是通过阅读代码解决问题,而是通过日志或代码,排除掉一些与业务代码相关的低级错误。
性能优化的最佳位置,是应用内部。
譬如,查看业务日志,检查日志内容里是否有大量的报错产生,应用层、框架层的一些性能问题,大多数都能从日志里找到端倪(日志级别设置不合理,导致线上疯狂打日志);再者,检查代码的主要逻辑,如 for 循环的不...
2018-10-08 15:36:46 |
Java
JVM-33-Arthas Java 诊断工具
arthas
arthas 是Alibaba开源的Java诊断工具,深受开发者喜爱。
能解决什么问题
当你遇到以下类似问题而束手无策时,Arthas可以帮助你解决:
这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception?
我改的代码为什么没有执行到?难道是我没 commit?分支搞错了?
遇到问题无法在线上...
2018-10-08 15:36:46 |
Java
JVM-32-反编译字节码 decompile bytecode
背景
有编译,就有反编译。
实际使用中,我们最常见的需求,应该是根据 class 文件,阅读相关的源码信息。
CFR(Class File Reader)
最近在研究一下class字节码的东西,尝试将class文件反编译成java文件。尝试了很多的工具,比如JD-GUI及其插件以及各种在线反编译,始终感觉不够酷,毕竟我是一个比较依赖终端的人,所以尝试找一些能否在终端可以实现反编译的工...
2018-10-08 15:36:46 |
Java