1

我的产品有 256 MB 的 RAM。我已经将java 6升级到java 8。然后我开始面临与java 8相关的内存问题。随着Java 8的使用内存消耗在增加使用相同的代码,java 6的内存消耗是稳定的 我已经探索了很多关于元空间,java8并在元空间参数下方找到。

我尝试了以下组合并出现内存不足错误

1.MaxMetaspaceSize 50M MaxMetaspaceFreeRatio 60M MinMetaspaceFreeRatio 50M

2.MaxMetaspaceSize 30M

3.MaxMetaspaceSize 40M

4.MaxMetaspaceSize 50M

5.MaxMetaspaceSize 80M

但 2 到 3 小时后,出现内存不足元空间错误。

有人能解释一下元空间选项 MaxMetaspaceSize,MaxMetaspaceFreeRatio ,MinMetaspaceFreeRatio 是什么吗?

我如何确定合适的尺寸是多少?这些值的正确组合是什么,以避免生产中的内存不足实例并减少内存消耗?

4

1 回答 1

2

问题已解决。发现 JAXB 存在已知问题。

  • 使用字符串缓冲区而不是字符串
  • 删除了不必要的 JAXBContext 实例。
  • 参考这个链接

  • JAXB 是否存在任何内存使用问题?
  • 于 2016-12-22T05:05:29.393 回答