【问题标题】:Memory Loss for Java 8u6 on ARM (BeagleBoneBllack)ARM 上 Java 8u6 的内存丢失 (BeagleBoneBllack)
【发布时间】:2014-10-14 18:46:02
【问题描述】:

我正在处理在 ARM(Beagle Bone Black)上在 Java 8u6 下运行的 Java 程序的记忆效应。 当我启动我的程序并并行运行“top”命令时,我可以看到我的应用程序不断增加 RAM 消耗。 VIRT、RES 和 %MEM 不断增长。 这看起来像是我的应用程序中的内存泄漏。 所以我启动了一个 jstatd,为我的应用程序启用了 JMX,并通过 VisualVM 远程连接到我的应用程序。 查看我的应用程序,Visual VM 告诉我堆使用量不超过 42MB。我为我的应用程序设置了 -Xms=128m ,到目前为止,这个限制从未达到过。 查看元空间,它始终为 11MB。记忆样本告诉我没有实例不断增长。 没有任何迹象表明可能存在泄漏。 所以我想知道记忆去哪里了。有什么想法吗?

【问题讨论】:

  • 您的意思是Xmx,而不是Xms?另外,“堆使用”是什么意思?报告的堆 size 是多少?
  • 我的意思是 Xms。如果没有另外定义,我认为设置 Xms 会隐式地将 Xmx 设置为相同的值。

标签: java memory-leaks arm


【解决方案1】:

我的错... 我使用 JNI 访问 BBB 上的一些硬件。在 Java 中,我将 JNI 称为提供 byte[]。 在 C 中,我使用 GetByteArrayElements 将 byte[] 转换为 char[],但我忘记使用 ReleaseByteArrayElements 再次释放数组。 那就是记忆的去向。添加 Release 后...现在一切正常。

【讨论】:

    猜你喜欢
    • 2013-08-17
    • 1970-01-01
    • 1970-01-01
    • 2019-06-10
    • 2011-04-04
    • 2015-04-01
    • 1970-01-01
    • 2013-09-19
    • 1970-01-01
    相关资源
    最近更新 更多