如何使用java获取特定线程的cpu内存消耗?

时间:2013-06-06 12:10:10

标签: java multithreading

如何使用java获取特定线程的Windows cpu内存消耗?我只想知道内存使用情况而不是cpu时间。

2 个答案:

答案 0 :(得分:1)

  

如何使用java获取特定线程的Windows cpu内存消耗?我只想知道内存使用情况而不是cpu时间。

你做不到。由于所有线程共享一个公共堆,因此无法将在JVM中创建的堆内存资源与创建它的线程联系起来。有堆栈内存分配给每个线程,但我知道无法确定每个线程消耗了多少堆栈空间。

探查器是你走的最佳方式,但我不认为他们甚至会向你展示自己拥有的线程。但是,您可以从对象调用堆栈中推断出此信息。

答案 1 :(得分:0)

您想在代码中或使用工具执行此操作吗?

使用像VisualVM这样的分析器,这很容易。但是在Java中,它更难,因为JVM将堆视为共享而不是分离的线程堆。