ARM上的Java 8u6内存丢失(BeagleBoneBllack)

时间:2014-10-14 18:46:02

标签: java memory-leaks arm

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

1 个答案:

答案 0 :(得分:1)

我的错...... 我使用JNI访问BBB上的一些硬件。在Java中,我调用JNI提供byte []。 在C中,我使用GetByteArrayElements将byte []转换为char [],但我忘了使用ReleaseByteArrayElements再次释放数组。 那就是记忆的去处。添加发布后......一切都很好。