| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -1,4 +1,4 @@ | |||
| 1 | - package com.brianway.learning.java.jvm; | ||
| 1 | + package com.brianway.learning.java.jvm.memory; | ||
| 2 | 2 | ||
| 3 | 3 | import sun.misc.Unsafe; | |
| 4 | 4 | ||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -1,4 +1,4 @@ | |||
| 1 | - package com.brianway.learning.java.jvm; | ||
| 1 | + package com.brianway.learning.java.jvm.memory; | ||
| 2 | 2 | ||
| 3 | 3 | import java.util.ArrayList; | |
| 4 | 4 | import java.util.List; | |
@@ -34,7 +34,7 @@ public static void main(String[] args) { | |||
| 34 | 34 | at java.util.ArrayList.ensureExplicitCapacity(ArrayList.java:235) | |
| 35 | 35 | at java.util.ArrayList.ensureCapacityInternal(ArrayList.java:227) | |
| 36 | 36 | at java.util.ArrayList.add(ArrayList.java:458) | |
| 37 | - at com.brianway.learning.java.jvm.HeapOOM.main(HeapOOM.java:19) | ||
| 37 | + at com.brianway.learning.java.jvm.memory.HeapOOM.main(HeapOOM.java:19) | ||
| 38 | 38 | at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) | |
| 39 | 39 | at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) | |
| 40 | 40 | at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -1,4 +1,4 @@ | |||
| 1 | - package com.brianway.learning.java.jvm; | ||
| 1 | + package com.brianway.learning.java.jvm.memory; | ||
| 2 | 2 | ||
| 3 | 3 | /** | |
| 4 | 4 | * Created by brian on 17/3/1. | |
@@ -34,8 +34,8 @@ Java HotSpot(TM) 64-Bit Server VM warning: Exception java.lang.OutOfMemoryError | |||
| 34 | 34 | Exception in thread "main" java.lang.OutOfMemoryError: unable to create new native thread | |
| 35 | 35 | at java.lang.Thread.start0(Native Method) | |
| 36 | 36 | at java.lang.Thread.start(Thread.java:714) | |
| 37 | - at com.brianway.learning.java.jvm.JavaVMStackOOM.stackLeakByThread(JavaVMStackOOM.java:22) | ||
| 38 | - at com.brianway.learning.java.jvm.JavaVMStackOOM.main(JavaVMStackOOM.java:28) | ||
| 37 | + at com.brianway.learning.java.jvm.memory.JavaVMStackOOM.stackLeakByThread(JavaVMStackOOM.java:22) | ||
| 38 | + at com.brianway.learning.java.jvm.memory.JavaVMStackOOM.main(JavaVMStackOOM.java:28) | ||
| 39 | 39 | at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) | |
| 40 | 40 | at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) | |
| 41 | 41 | at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -0,0 +1,50 @@ | |||
| 1 | + package com.brianway.learning.java.jvm.memory; | ||
| 2 | + | ||
| 3 | + /** | ||
| 4 | + * Created by brian on 17/3/1. | ||
| 5 | + * 虚拟机栈和本地方法栈 OOM 测试 | ||
| 6 | + * VM Args: -Xss256k | ||
| 7 | + */ | ||
| 8 | + public class JavaVMStackSOF { | ||
| 9 | + private int stackLength = 1; | ||
| 10 | + | ||
| 11 | + public void stackLeak() { | ||
| 12 | + stackLength++; | ||
| 13 | + stackLeak(); | ||
| 14 | + } | ||
| 15 | + | ||
| 16 | + public static void main(String[] args) { | ||
| 17 | + JavaVMStackSOF oom = new JavaVMStackSOF(); | ||
| 18 | + | ||
| 19 | + try { | ||
| 20 | + oom.stackLeak(); | ||
| 21 | + } catch (Throwable e) { | ||
| 22 | + System.out.println("stack length:" + oom.stackLength); | ||
| 23 | + throw e; | ||
| 24 | + } | ||
| 25 | + } | ||
| 26 | + | ||
| 27 | + } | ||
| 28 | + | ||
| 29 | + /* | ||
| 30 | + stack length:1862 | ||
| 31 | + Exception in thread "main" java.lang.StackOverflowError | ||
| 32 | + at com.brianway.learning.java.jvm.memory.JavaVMStackSOF.stackLeak(JavaVMStackSOF.java:12) | ||
| 33 | + at com.brianway.learning.java.jvm.memory.JavaVMStackSOF.stackLeak(JavaVMStackSOF.java:13) | ||
| 34 | + at com.brianway.learning.java.jvm.memory.JavaVMStackSOF.stackLeak(JavaVMStackSOF.java:13) | ||
| 35 | + at com.brianway.learning.java.jvm.memory.JavaVMStackSOF.stackLeak(JavaVMStackSOF.java:13) | ||
| 36 | + at com.brianway.learning.java.jvm.memory.JavaVMStackSOF.stackLeak(JavaVMStackSOF.java:13) | ||
| 37 | + at com.brianway.learning.java.jvm.memory.JavaVMStackSOF.stackLeak(JavaVMStackSOF.java:13) | ||
| 38 | + at com.brianway.learning.java.jvm.memory.JavaVMStackSOF.stackLeak(JavaVMStackSOF.java:13) | ||
| 39 | + at com.brianway.learning.java.jvm.memory.JavaVMStackSOF.stackLeak(JavaVMStackSOF.java:13) | ||
| 40 | + at com.brianway.learning.java.jvm.memory.JavaVMStackSOF.stackLeak(JavaVMStackSOF.java:13) | ||
| 41 | + at com.brianway.learning.java.jvm.memory.JavaVMStackSOF.stackLeak(JavaVMStackSOF.java:13) | ||
| 42 | + at com.brianway.learning.java.jvm.memory.JavaVMStackSOF.stackLeak(JavaVMStackSOF.java:13) | ||
| 43 | + at com.brianway.learning.java.jvm.memory.JavaVMStackSOF.stackLeak(JavaVMStackSOF.java:13) | ||
| 44 | + | ||
| 45 | + ..... | ||
| 46 | + | ||
| 47 | + | ||
| 48 | + | ||
| 49 | + Process finished with exit code 1 | ||
| 50 | + */ | ||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -1,4 +1,4 @@ | |||
| 1 | - package com.brianway.learning.java.jvm; | ||
| 1 | + package com.brianway.learning.java.jvm.memory; | ||
| 2 | 2 | ||
| 3 | 3 | import java.util.ArrayList; | |
| 4 | 4 | import java.util.List; | |
| Back | FazBrowse Home | New Git URL |
0 commit comments