如何优化JVM的内存使用?

时间:2011-06-01 07:49:27

标签: optimization jvm java-service-wrapper

我想问一下,这里是否有人知道如何优化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

但这些配置设置完全没有区别。什么是正确的配置设置?或者,我还需要做些什么来优化这个?

提前感谢您的回答。

2 个答案:

答案 0 :(得分:1)

您在谈论居民记忆还是虚拟?在我的机器上,while(true);中没有任何其他内容的简单main已经获得了10 MB的驻留内存,主要是因为内存映射的r / o库(libc,libm,librt,libpthread ......)和罐子。如果可能的话,尽可能减少内存占用,或者在任何非平凡的应用程序中减少10 MB,只会意味着更多的分页,从而降低速度。

另一方面,虚拟内存在我的机器上是1.1 GB,如果需要可以减少,但为什么这样做呢?未使用的虚拟内存并不需要任何费用。

编辑:除此之外,您可能希望查看其他HotSpot VM Options,尤其是MaxHeapFreeRatio。

答案 1 :(得分:0)

documentation for YAJSW州:

  

包装内存要求
  YAJSW的灵活性是有代价的。使用java作为包装器进程有许多优点。但是我们支付更高内存占用的java价格。虽然JSW包装器只需要几k内存,但YAJSW的最小虚拟内存要求是90 MB和40 MB物理内存。该值因操作系统和功能而异。

如果您的应用程序可以在32位内存限制内运行,则可以使用community edition of Tanuki,因为它的占用空间较小。