如何优化 JVM 的内存使用?
请问这里有谁知道如何优化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
但这些配置设置没有任何区别。正确的配置设置是什么?或者,我还需要做什么来优化它?
预先感谢您的回答。
I would like to ask if anyone here knows a way how to optimize the memory usage of the JVM?
We are using a java service wrapper (YAJSW) that invokes the JVM and the physical memory usage is around 40MB. I want to lessen this to let's say 5-10MB. How do I achieve this?
So far, I only have the following configuration:
java =-Xmx1024m
I have also tried this:
java =-Xms1024m -Xmx1024m -XX:NewSize=512m -XX:MaxNewSize=512m -XX:SurvivorRatio=2 -XX:PermSize=256m -XX:MaxPermSize=256m
But these configuration settings made no difference at all. What would be the correct configuration settings for this? or, what else do i have to do to optimize this?
Thank in advance for your answers.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
你说的是常驻内存还是虚拟内存?在我的机器上,
main
中的一个简单的while(true);
没有任何其他东西已经让我获得了 10 MB 的常驻内存,主要是因为内存映射的 r/o 库 (libc 、libm、librt、libpthread...)和 jar。如果可能的话,进一步减少内存占用,或者在任何重要的应用程序中减少到 10 MB,只会意味着更多的分页,从而降低速度。另一方面,我的机器上的虚拟内存为 1.1 GB,如有必要可以减少,但为什么要这样做呢?未使用的虚拟内存实际上不会花费任何费用。
编辑:除此之外,您可能还想看看其他 HotSpot VM 选项,尤其是 MaxHeapFreeRatio。
Are you talking about resident memory or virtual? On my machine, a simple
while(true);
inmain
without anything else already gets me 10 MB of resident memory, mostly because of memory mapped r/o libraries (libc, libm, librt, libpthread...) and jars. Reducing, if possible at all, the memory footprint any further, or to 10 MB in any non-trivial application, would only mean more paging, thus reducing speed.Virtual memory, on the other hand, is 1.1 GB on my machine, which could be reduced if necessary, but why do so? Unused virtual memory doesn't really cost anything.
Edit: Apart from that, you may want to have a look at the other HotSpot VM Options, especially MaxHeapFreeRatio.
YAJSW 文档指出:
如果您的应用程序可以在 32 位内存限制内运行,您可以使用 Tanuki 社区版因为它的占地面积较小。
The documentation for YAJSW states:
If your application can run within 32bit memory restrictions you can use the community edition of Tanuki as it has a lower footprint.