如何从一个 JVM 进程获取有关不同 java 进程(运行不同进程的另一个 JVM 实例)的信息?

发布于 2025-01-03 18:49:47 字数 340 浏览 1 评论 0原文

我正在编写单元测试来查找 MyClass 实例占用了多少内存。 我似乎无法对随机混沌垃圾收集器做任何事情,它告诉我我的 MyClass[] myinstances=new MyClass[10000]; 占用了负内存,所以我决定启动 2 个新的JVM 进程只是启动一个包含 main 方法的类,该类实例化一个巨大的数组并挂起。

我知道我可以使用 Runtime.getRuntime.exec("java my.package.SomeClassWithMainMethod"); 启动一个新的 JVM

所以我的问题是:如何获取有关占用内存量的信息由我启动的 JVM 启动?

谢谢,你们统治。

I'm writing unit tests to find just how much memory instances of MyClass take up.
I can't seem to do anything about the random chaotic garbage collector that tells me my MyClass[] myinstances=new MyClass[10000]; takes up negative memory, so i decided to just start up 2 new JVM processes which simply start a class containing a main method, that instantiates a huge arry and hangs.

I know i can start up a new JVM with Runtime.getRuntime.exec("java my.package.SomeClassWithMainMethod");

So my question is: how do i get the info about the ammount of memory taken up by the JVM i started?

Thx, you guys rule.

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

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

发布评论

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

评论(2

夏日落 2025-01-10 18:49:47

您可以使用 JVisualVMJConsole ,它们从 1.6 开始就包含在 JDK 中

You can use JVisualVM or JConsole , they are included in the JDK since 1.6

紫瑟鸿黎 2025-01-10 18:49:47

我认为你最好使用分析器,jvisualvm 可能足够好并且随你的 Java 发行版一起提供。请参阅这个问题:如何确定实际内存数据结构的使用

I think you are better off using a profiler, jvisualvm is probably good enough and comes with your Java distribution. See this question: How to determine the actual memory usage of a data structure

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