读书人

本土直接内存溢出

发布时间: 2012-12-28 10:29:05 作者: rapoo

本地直接内存溢出

DirectMemory容量可通过-XX:MaxDirectMemorySize指定,如果不指定,则默认与Java堆的最大值(-Xmx指定)一样

import java.lang.reflect.Field;import sun.misc.Unsafe;  /** * VM Args:-Xmx20M -XX:MaxDirectMemorySize=10M * @author zzm */ public class DirectMemoryOOM { private static final int _1MB = 1024 * 1024; public static void main(String[] args) throws Exception {     Field unsafeField = Unsafe.class.getDeclaredFields()[0];     unsafeField.setAccessible(true);     Unsafe unsafe = (Unsafe) unsafeField.get(null);     while (true) {     unsafe.allocateMemory(_1MB);     }    }}


Exception in thread "main" java.lang.OutOfMemoryErrorat sun.misc.Unsafe.allocateMemory(Native Method)at DirectMemoryOOM.main(DirectMemoryOOM.java:17)

读书人网 >编程

热点推荐