Java触发Metaspace的OOMError
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++) {
//1.创建ClassWriter
ClassWriter classWriter = new ClassWriter(0);
//2.指定类的:Java版本号、类名、包名、父类、接口
classWriter.visit(Opcodes.V1_8, Opcodes.ACC_PUBLIC, "Class_" + i, null, "java/lang/Object", null);
//3.生成类的字节码
byte[] byteArray = classWriter.toByteArray();
//4.将类的字节码加载到虚拟机
metaSpaceOOMTest.defineClass("Class_" + i, byteArray, 0, byteArray.length);
System.err.printf("动态加载了 %d 个类\n", i);
count++;
}
System.err.printf("动态加载了 %d 个类", count);
}
}
学习使我充实,分享给我快乐!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
2020-05-02 Linux中CPU性能分析工具perf简单使用(亲测可用)
2020-05-02 Linux之SeLinux
2020-05-02 Docker基础
2020-05-02 yum常用命令
2020-05-02 Centos7配置yum国内镜像及仓库升级