如何优化JVM的内存使用?

fle*_*eur 5 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

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

提前感谢您的回答.

小智 1

你说的是常驻内存还是虚拟内存?在我的机器上,一个简单的while(true);inmain没有任何其他东西已经让我获得了 10 MB 的常驻内存,主要是因为内存映射的 r/o 库(libc、libm、librt、libpthread ...)和 jar。如果可能的话,进一步减少内存占用,或者在任何重要的应用程序中减少到 10 MB,只会意味着更多的分页,从而降低速度。

另一方面,我的机器上的虚拟内存为 1.1 GB,如有必要可以减少,但为什么要这样做呢?未使用的虚拟内存实际上不会花费任何费用。

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