有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java 8中的内存消耗高于Java 7

我正在使用Java7开发一个JavaFX桌面应用程序。我正在开发的应用程序使用10-12个后台线程来获取系统信息或发出HTTP请求。我还使用了一些JNA和JNI代码

当我将堆大小限制为40 MB时,这就足够了,应用程序运行时总内存约为100 MB,没有问题

然而,由于Oracle在4月份放弃了对Java 7的支持,我决定将应用程序升级到Java 8,升级进展顺利,不需要太多代码更改,但我注意到总内存消耗增加到130+-20 MB。我对这个问题进行了研究,发现Java 8引入了元空间,我认为这可能是问题所在,但在Java 7中,我从未设置过PermGenSize,所以最终我不知道应用程序为什么会使用更多内存

正如大家所知,在VisualVM中,元空间的使用量约为33-36 MB

任何帮助都将不胜感激,谢谢

----解决---------

问题是;我使用的JDK是64位的,因为Windows上的64位JDK只包含服务器模式,所以我安装了一个32位的JDK 8,并开始在客户端模式下使用它,从那时起,RAM的使用量约为80MB


共 (0) 个答案