如何优化 JVM 的内存使用?

发布于 2024-11-13 07:52:06 字数 393 浏览 3 评论 0原文

请问这里有谁知道如何优化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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

追星践月 2024-11-20 07:52:06

你说的是常驻内存还是虚拟内存?在我的机器上,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); in main 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.

夏尔 2024-11-20 07:52:06

YAJSW 文档指出:

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

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

The documentation for YAJSW states:

Wrapper memory requirements
The flexibility of YAJSW comes at a price. Using java for the wrapper process has many advantages. However we pay the java price of higher memory footprint. Whereas the JSW wrapper requires only a few k of memory, the minimal virtual memory requirement of YAJSW is 90 MB and 40 MB physical memory. The value varies depending on the OS and the functions.

If your application can run within 32bit memory restrictions you can use the community edition of Tanuki as it has a lower footprint.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文