File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 3939
4040
4141
42- ### 元数据区(JDK1.8)
42+ ## 元数据区(JDK1.8)
4343
4444在 ` JDK1.8 ` 中已经移除了方法区(永久代),并使用了一个元数据区域进行代替(` Metaspace ` )。
4545
5151
5252
5353
54- ### 运行时常量池
54+ ## 运行时常量池
5555
5656运行时常量池是方法区的一部分,其中存放了一些符号引用。当 ` new ` 一个对象时,会检查这个区域是否有这个符号的引用。
5757
5858
5959
60- ### 直接内存
60+ ## 直接内存
6161
6262
6363
7070既然是内存,那也得是可以被回收的。但由于堆外内存不直接受 ` JVM ` 管理,所以常规 ` GC ` 操作并不能回收堆外内存。它是借助于老年代产生的 ` fullGC ` 顺便进行回收。同时也可以显式调用 ` System.gc() ` 方法进行回收(前提是没有使用 ` -XX:+DisableExplicitGC ` 参数来禁止该方法)。
7171
7272** 值得注意的是** :由于堆外内存也是内存,是由操作系统管理。如果应用有使用堆外内存则需要平衡虚拟机的堆内存和堆外内存的使用占比。避免出现堆外内存溢出。
73+
74+
75+ ## 常用参数
76+
77+ ![ ] ( https://ws1.sinaimg.cn/large/006tNbRwly1fxjcmnkuqyj30p009vjsn.jpg )
78+
79+ 通过上图可以直观的查看各个区域的参数设置。
80+
81+ 常见的如下:
82+
83+ - ` -Xms64m ` 最小堆内存 ` 64m ` .
84+ - ` -Xmx128m ` 最大堆内存 ` 128m ` .
85+ - ` -XX:NewSize=30m ` 新生代初始化大小为` 30m ` .
86+ - ` -XX:MaxNewSize=40m ` 新生代最大大小为` 40m ` .
87+ - ` -Xss=256k ` 线程栈大小。
88+ - ` -XX:+PrintHeapAtGC ` 当发生 GC 时打印内存布局。
89+ - ` -XX:+HeapDumpOnOutOfMemoryError ` 发送内存溢出时 dump 内存。
90+
91+
92+ 新生代和老年代的默认比例为 ` 1:2 ` ,也就是说新生代占用 ` 1/3 ` 的堆内存,而老年代占用 ` 2/3 ` 的堆内存。
93+
94+ 可以通过参数 ` -XX:NewRatio=2 ` 来设置老年代/新生代的比例。
Original file line number Diff line number Diff line change 7070既然是内存,那也得是可以被回收的。但由于堆外内存不直接受 ` JVM ` 管理,所以常规 ` GC ` 操作并不能回收堆外内存。它是借助于老年代产生的 ` fullGC ` 顺便进行回收。同时也可以显式调用 ` System.gc() ` 方法进行回收(前提是没有使用 ` -XX:+DisableExplicitGC ` 参数来禁止该方法)。
7171
7272** 值得注意的是** :由于堆外内存也是内存,是由操作系统管理。如果应用有使用堆外内存则需要平衡虚拟机的堆内存和堆外内存的使用占比。避免出现堆外内存溢出。
73+
74+ ## 常用参数
75+
76+ ![ ] ( https://ws1.sinaimg.cn/large/006tNbRwly1fxjcmnkuqyj30p009vjsn.jpg )
77+
78+ 通过上图可以直观的查看各个区域的参数设置。
79+
80+ 常见的如下:
81+
82+ - ` -Xms64m ` 最小堆内存 ` 64m ` .
83+ - ` -Xmx128m ` 最大堆内存 ` 128m ` .
84+ - ` -XX:NewSize=30m ` 新生代初始化大小为` 30m ` .
85+ - ` -XX:MaxNewSize=40m ` 新生代最大大小为` 40m ` .
86+ - ` -Xss=256k ` 线程栈大小。
87+ - ` -XX:+PrintHeapAtGC ` 当发生 GC 时打印内存布局。
88+ - ` -XX:+HeapDumpOnOutOfMemoryError ` 发送内存溢出时 dump 内存。
89+
90+
91+ 新生代和老年代的默认比例为 ` 1:2 ` ,也就是说新生代占用 ` 1/3 ` 的堆内存,而老年代占用 ` 2/3 ` 的堆内存。
92+
93+ 可以通过参数 ` -XX:NewRatio=2 ` 来设置老年代/新生代的比例。
You can’t perform that action at this time.
0 commit comments