JVM原理及调优(2)–JVM内存结构
1.JVM内存结构
JVM按照运行时数据的存储结构来划分内存结构,不同格式的数据分别存储在不同的区域,统称为运行时数据,运行时数据包括Java程序本身的数据信息和JVM运行Java需要的额外数据信息。
JVM内存结构
Non-Heap
CodeCache
Permanent Generation space
Direct MomeryHeap
JVM GC管理
1.1 jvm运行时的数据区
线程私有:程序计数器、J...
JVM按照运行时数据的存储结构来划分内存结构,不同格式的数据分别存储在不同的区域,统称为运行时数据,运行时数据包括Java程序本身的数据信息和JVM运行Java需要的额外数据信息。
JVM内存结构
Non-Heap
CodeCache
Permanent Generation space
Direct Momery
Heap
JVM GC管理
线程私有:程序计数器、J...
RUNNABLE:线程处于正在运行状态。
TIMED_WAITING(on object monitor) 表示当前线程被挂起一段时间,说明该线程正在执行obj.wait(int time)方法.
TIMED_WAITING(sleeping) 表示当前线程被挂起一段时间,即正在执行Thread.sleep(int time)方法.
TIMED_WAIT...
4.1 查看堆详细信息:jmap -heap pid
4.2 查看当前堆中对象统计信息: jmap -histo pid
4.3 jmap -dump:format=b,file=dumpFileName pid
现在比较常用的是分代收集(generational collection,也是SUN VM使用的,J2SE1.2之后引入),即将内存分为几个区域,将不同生命周期的对象放在不同区域里:young generation,tenured generation和permanet generation。绝大部分的object被分配在young generation(生命周期短),并...
Continue reading >>