gpt4 book ai didi

java - 查看 Thread 使用了多少 RAM

转载 作者:搜寻专家 更新时间:2023-11-01 01:43:59 24 4
gpt4 key购买 nike

我想知道如何找出某些线程消耗了多少 RAM。我的程序中有大约 15 个类,每个类都在自己的线程中运行。

那么我如何才能发现 Thread1、Thread2、... Thread15 使用了多少 RAM?有什么方法吗?

感谢回复!

最佳答案

简短的回答是,所有动态分配的内存(堆)都由所有线程共享,除非您使用 Java 的 ThreadLocal class。声明仅对线程局部的变量。

事实上,traditional Java memory model线程间的共享数据(当不使用 ThreadLocal 时)是线程在线程间共享内存方面如此强大的原因。

正如 sk4l 提到的,有一个 ThreadMXBean 的 getThreadAllocatedBytes 方法如果您的 JVM 支持该方法,但请记住,这通常只是一个近似值。

最后,Oracle JDK 和 OpenJDK 的最新版本包括 jconsole和 JDK 6u7 及更高版本包括 VisualVM您可以使用其中任何一个附加到您的进程并查看有关内存和线程的信息。

关于java - 查看 Thread 使用了多少 RAM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17631345/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com