java - 如何模拟OutOfMemoryError : Metaspace

标签 java

我想知道如何自己引发OutOfMemoryError: Metaspace异常?是不是可以加载很多类,让它们在内存中长期驻留。

最佳答案

继续向 StringBuilder 添加一些文本,直到出现 OutOfMemoryError

StringBuilder s = new StringBuilder();

while (true) {
    s.append("dummy");
}

您也可以将一些虚拟类添加到 ListSet 中,但是创建新实例更耗时,您将不得不等待一段时间直到获取 OutOfMemoryError

此外,插入数组列表的摊销时间成本也会有所不同。

已更新

默认情况下,Java 8 对元空间的最大大小没有限制,因此只要您不使用 MaxMetaspaceSize 标志设置限制,就不会抛出错误。

关于java - 如何模拟OutOfMemoryError : Metaspace,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52661753/

相关文章:

java - 不可变类型包装器

java - JDBC 连接意外关闭

java - 我的代码逻辑上有什么问题?

导出项目后的Java资源

java - 使用日期条件和 SQL datetime2 时,JPA 会截断纳秒

java - 很少有 JDBC 连接

java - 如何在对话框中使用枚举来使用 JComboBox

java - 在 Web 方法中使用 JAXB 忽略 JodaTime 方法参数

java - 有没有办法不使用 Scanner (Java) 推进一行

java - 在 Java 中将整数转换为字符