需要澄清 jar 的内存使用情况

发布于 2025-01-09 12:15:34 字数 517 浏览 1 评论 0原文

我正在使用这个命令运行一个罐子。注意内存参数。 (jar大小为56MB)

java -jar -Xms64M -Xmx256M build/libs/account-1.0.0-SNAPSHOT.jar 

在我的Ubuntu系统监视器中,jar内存使用情况如下所示。

输入图片此处描述

当我使用 YourKit 分析 jar 时,它显示如下,这不等于上面的内存使用量。

输入图片此处描述

我在这里缺少什么?

I'm running a jar using this command. Note the memory parameters. (The jar size is 56MB)

java -jar -Xms64M -Xmx256M build/libs/account-1.0.0-SNAPSHOT.jar 

In my Ubuntu System Monitor, the jar memory usage is shown as below.

enter image description here

When I profile the jar using YourKit, it shows below, which doesn't add up to above memory usage.

enter image description here

What am I missing here?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

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

发布评论

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

评论(1

情仇皆在手 2025-01-16 12:15:34

jar 大小与 JVM 内存使用情况完全无关。

jar 可以保存类、接口,但也可能保存与 java 不直接相关的数据,如图像、属性文件、文本文件、json 等。

此外,仅包含单个类的 jar 无法与其内存使用量进行比较。事实上,jar 使用 jre 的类(String,ArrayList,...),这些类不存在于 jar 本身中,但加载到内存中。

您可以使用探查器检查内存,检查正在运行的应用程序的使用情况。基本上你可以回答这样的问题:

  • 内存不再使用时是否被释放?
  • 是否有某种缓存可以保存数据并且永远不会释放它们?
  • 有没有比预期更大的物体?
  • 我可以减少该应用程序的内存量
  • 垃圾收集器被调用的频率是多少?
  • 我可以建议使用不同类型的垃圾收集器吗?

无论如何请记住,jar 的磁盘大小与 JVM 内存使用量绝对无关

The jar size is not related to the JVM memory usage at all.

A jar can hold classes, interfaces, but potentially also data that are not directly related to java like images, property files, text files, jsons and so on.

Also a jar holding only a single class cannot be compared with its memory usage. Infact the jar uses classes of the jre (String, ArrayList, ...) that are not present in the jar itself but are loaded in the memory.

What you can do examining the memory using a profiler is a check of the usage of the running application. Basically you can answers questions like:

  • Is the memory released when it is no more used?
  • Is there any sort of cache holding data and never releasing them?
  • Is there any object bigger then expected?
  • Can I decrease the quantity of memory for this application
  • How often is the garbage collector called?
  • Can I suggest to use a different kind of garbage collector?

In any case remember that the disk size of a jar is absolutely not related to the JVM memory usage

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