有没有办法找出我的Java线程在虚拟机中占用了多少内存?
例如,使用堆栈跟踪转储或其他手段。
谢谢。
ThreadMXBean
Java线程使用堆作为共享内存。每个线程都有自己的栈(可以通过-Xss命令行选项设置其大小,默认为512KB),但是所有其他内存(堆)并不属于特定的线程,询问一个特定线程使用了多少堆内存就没有意义。
-Xss
ThreadMXBean
上的新接口来获取每个线程的内存使用情况:http://download.oracle.com/javase/6/docs/jre/api/management/extension/com/sun/management/ThreadMXBean.html#getThreadAllocatedBytes%28long%29 - BeeOnRope