JPDA 概览
JPDA 的全称是「Java Platform Debugger Architecture」,它是一个多层的调试架构,支持创建跨平台的调试程序,可同时支持不同的虚拟机实现和不同的 JDK 版本。
JPDA 的全称是「Java Platform Debugger Architecture」,它是一个多层的调试架构,支持创建跨平台的调试程序,可同时支持不同的虚拟机实现和不同的 JDK 版本。
javaagent 使用 jar 文件格式进行打包,通过 jar 文件里的 manifest 清单文件指定被加载的类,用于启动 agent。
javaagent 可以在 main 方法执行前执行一些操作,比如增加一些特殊启动逻辑、在类完成加载前对类的字节码进行修改等。本文不谈底层原理,只介绍如何从零手写一个javaagent。
本文讲的是:在 linux 环境下,定位 cpu 使用率最高的 java 线程,找出对应代码的方法。基本思路是:使用 top
命令找出 cpu 占用率最高的 java 线程,然后结合 jstack
定位问题代码。
redis 从 3.2.0 版本开始提供了对地理位置的支持,相关的命令有 GEOADD
、GEOHASH
、GEOPOS
、GEODIST
、GEORADIUS
和 GEORADIUSBYMEMBER
,本文简单介绍下这些命令的用法。
最近遇到一个 netty 的 OutOfDirectMemoryError 报错,是在分配 direct memory 时内存不足导致的,看了下报错提示,要分配的内存大小为 16M,剩余的空间不足。这里 max direct memory 大约有 7G,于是就有一个疑问,这个值是怎么设置的?
jdk 中有很多 native 方法,比如 Object 类的 registerNatives 方法、String 类的 intern 方法等。这些方法在 java 层面只有接口定义,具体的方法实现则是在 jdk 中,采用 c/c++ 实现。本文主要讲下如何找到 native 方法的实现。
jstat
是 jdk 自带的一个命令行工具,用于监控 java 虚拟机的统计信息,通常可用它查看指定 java 进程的 gc 情况。