jvm

Memory

  • NIO Direct Memory
  • native Memory
  • Java 堆

使用Perftools来分析JVM的native Memory分配情况,查看分配结果,
cat pf2.txt | sort -n -r -k4 | more显示每个函数分配的内存

动态代理

  • 字节码创建方式:JDK动态代理通过JVM实现代理类字节码的创建,cglib通过ASM创建字节码
  • 对被代理对象的要求:JDK动态代理要求被代理对象实现接口,cglib要求被代理对象未被final修饰
  • 代理对象创建速度:JDK动态代理创建代理对象速度比cglib快
  • 代理对象执行速度:JDK动态代理代理对象执行速度比cglib快

Tools to analysis

jmap

创建堆转储文件,可通过MAT工具分析

jstat