5

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

但是这些配置设置根本没有任何区别。什么是正确的配置设置?或者,我还需要做什么来优化它?

提前感谢您的回答。

4

2 回答 2

1

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

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

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

于 2011-06-01T13:06:42.467 回答
0

YAJSW的文档 指出:

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

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

于 2013-06-18T15:01:19.203 回答