Java程序调优分析

一、 JAVA程序运行逻辑分析

示例图:

 类加载器(Class Loader):负责将编译好的.class字节码文件加载到内存中,使得JVM可以实例化或以其他方式使用加载后的类。类加载器支持在运行时的动态加载,动态加载可以节省内存空间,灵活地从本地或者网络上加载类

方法区/元数据区:

  • 方法区也就是我们常说的永久代区域,里面存储着Java类信息、常量池、静态变量等数据,方法区占用的内存区域在JVM中是线程共享的。
  • 在JDK1.8及以后的版本中,方法区已经被移除,取而代之的是元数据区和本地内存,类的元数据信息直接存放到JVM管理的本地内存中。需要注意的是,本地内存不是虚拟机运行时数据区的一部分,也不是Java虚拟机规范中定义的内存区域。常量池、静态变量等数据则存放到了Java堆(Heap)中。

Java虚拟机栈/本地方法栈 /程序计数器:线程私有的,和线程运行代码直接相关

堆区:

  • Java是一门面向对象的程序设计语言,而JVM堆区是真正存储Java对象实例的内存区域。
  • 堆的大小不等于JVM可同时存储这么多数据,因为要做垃圾回收

二、JVM 资源监控工具

1. jps & jcmd 命令

jps 、jcmd工具在JDK

猜你喜欢

转载自blog.csdn.net/qq_38571773/article/details/128273203