package comg.yang.httpstest;
import jdk.internal.org.objectweb.asm.ClassWriter;
import jdk.internal.org.objectweb.asm.Opcodes;
/**
* @description:
* @author: Yang JianXiong
* @since: 2023/5/1
* <p>
* VMOption:-XX:MetaspaceSize=10M -XX:MaxMetaspaceSize=10M
*/
public class MetaSpaceOOMTest extends ClassLoader {
public static void main(String[] args) {
int count = 0;
MetaSpaceOOMTest metaSpaceOOMTest = new MetaSpaceOOMTest();
for (int i = 0; i < 10000; i++) {
ClassWriter classWriter = new ClassWriter(0);
classWriter.visit(Opcodes.V1_8, Opcodes.ACC_PUBLIC, "Class_" + i, null, "java/lang/Object", null);
byte[] byteArray = classWriter.toByteArray();
metaSpaceOOMTest.defineClass("Class_" + i, byteArray, 0, byteArray.length);
System.our.printf("动态加载了 %d 个类\n", i);
count++;
}
System.err.printf("动态加载了 %d 个类", count);
}
}
Java触发Metaspace的OOMError
发布时间 2023-05-03 00:02:06作者: JaxYoun