Java进程使用的总内存和堆大小

发布于 2024-12-12 04:12:33 字数 181 浏览 0 评论 0原文

我使用 Spring Batch 编写了一个应用程序。我可以使用 VisualVM 看到堆大小约为 22 MB。但是,当我使用 Process Explorer(在 Windows 上)查看它使用了多少内存时,差异很大(私有字节 - 71560K 和工作集 - 80388K)。这怎么解释呢? 还有哪些其他东西会使用这个内存?

谢谢

I wrote an application using Spring Batch. I can see with VisualVM that the heap size is about 22 MB. But, when I use Process Explorer (on Windows) to see how much memory is used by it, the difference is big (Private bytes - 71560K and Working Set - 80388K). How to explain this?
What are the other things that use this memory?

Thanks

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

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

发布评论

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

评论(2

旧人 2024-12-19 04:12:33

有共享库、线程堆栈、永久代、直接内存、内存映射文件。

但是,JVM 在启动时分配最大堆大小。使用的量并不那么重要。

There is shared libraries, Thread's stack, perm gen, direct memory, memory mapped files.

However, the JVM allocates the maximum heap size on startup. The amount used doesn't matter so much.

蓝海 2024-12-19 04:12:33

不要忘记本机空间(堆栈)!堆仅代表对象,线程/基元占用额外的内存。另外,据我所知,一旦进程占用内存,即使内容可能被垃圾收集,但有时也不会释放回操作系统。另外,我不确定 VisualVM,但 eclipse MAT 仅显示“当前”堆(如果当时运行 GC,则不会被垃圾收集)。您可能还想查看 jstat。

don't forget the native space (stack)! The heap only represents objects, threads/ primitives take up additional memory. Also AFAIK, once a process takes up memory, even though the contents may be garbage collected, it is at times not released back to the OS. Plus, I am not sure of VisualVM, but eclipse MAT only shows heap that is "current" (will not be garbage collected if GC was run at that point in time). You may also want to look at jstat.

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