个人简介

Echo Blog


江湖无名 安心练剑
  • 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