我想问在座的各位是否知道如何优化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
但是这些配置设置根本没有区别。此配置的正确配置设置是什么?或者,我还需要做些什么来优化它?
提前感谢您的回答。
发布于 2011-06-01 21:06:42
你说的是常驻内存还是虚拟内存?在我的机器上,main中的一个简单的while(true);就已经获得了10MB的驻留内存,这主要是因为内存映射的只读库(libc,libm,librt,libpthread...)还有罐子。如果可能的话,进一步减少内存占用,或者在任何重要的应用程序中减少到10MB,只会意味着更多的分页,从而降低速度。
另一方面,在我的机器上,虚拟内存是1.1 GB,如果需要的话,它可以减少,但为什么要这样做?未使用的虚拟内存实际上不会产生任何成本。
编辑:除此之外,你可能还想看看其他的HotSpot VM Options,尤其是MaxHeapFreeRatio。
发布于 2013-06-18 23:01:19
documentation for YAJSW声明:
包装器内存要求
YAJSW的灵活性是有代价的。使用java作为包装器进程有很多优点。然而,我们付出了更高内存占用的java代价。JSW包装器只需要几千内存,而YAJSW的最小虚拟内存要求是90MB和40MB物理内存。该值随操作系统和功能的不同而不同。
如果您的应用程序可以在32位内存限制内运行,则可以使用community edition of Tanuki,因为它占用的内存较少。
https://stackoverflow.com/questions/6197885
复制相似问题