我想问一下,这里是否有人知道如何优化JVM的内存使用? 我们正在使用一个调用JVM的Java服务包装器(YAJSW),物理内存使用量大约为40MB。我想减少这个让我们说5-10MB。我如何实现这一目标?
到目前为止,我只有以下配置:
java =-Xmx1024m
我也试过这个:
java =-Xms1024m -Xmx1024m -XX:NewSize=512m -XX:MaxNewSize=512m -XX:SurvivorRatio=2 -XX:PermSize=256m -XX:MaxPermSize=256m
但这些配置设置完全没有区别。什么是正确的配置设置?或者,我还需要做些什么来优化这个?
提前感谢您的回答。
答案 0 :(得分:1)
您在谈论居民记忆还是虚拟?在我的机器上,while(true);
中没有任何其他内容的简单main
已经获得了10 MB的驻留内存,主要是因为内存映射的r / o库(libc,libm,librt,libpthread ......)和罐子。如果可能的话,尽可能减少内存占用,或者在任何非平凡的应用程序中减少10 MB,只会意味着更多的分页,从而降低速度。
另一方面,虚拟内存在我的机器上是1.1 GB,如果需要可以减少,但为什么这样做呢?未使用的虚拟内存并不需要任何费用。
编辑:除此之外,您可能希望查看其他HotSpot VM Options,尤其是MaxHeapFreeRatio。
答案 1 :(得分:0)
包装内存要求
YAJSW的灵活性是有代价的。使用java作为包装器进程有许多优点。但是我们支付更高内存占用的java价格。虽然JSW包装器只需要几k内存,但YAJSW的最小虚拟内存要求是90 MB和40 MB物理内存。该值因操作系统和功能而异。
如果您的应用程序可以在32位内存限制内运行,则可以使用community edition of Tanuki,因为它的占用空间较小。