我想确定上下文切换对我的Java线程的影响。因此,我必须首先知道“它被抢占了多少次?”其次,如果可能的话,“我的线程停止执行多久了?”。我非常怀疑这可以从Java完成,但是嘿!有趣的事情是做不可能的事,对吧? :)即使如果我必须重新编译VM或使用某种LINUX工具或黑客,我会很高兴。所以现在我们知道这是不可能完成的,我们来做吧。 :)计算线程被抢占了多少次?
编辑:加油的人。另一个问题是与优先事项有关。我想你只是喜欢简单而无聊的问题。问题是清楚而有效的。
我想确定上下文切换对我的Java线程的影响。因此,我必须首先知道“它被抢占了多少次?”其次,如果可能的话,“我的线程停止执行多久了?”。我非常怀疑这可以从Java完成,但是嘿!有趣的事情是做不可能的事,对吧? :)即使如果我必须重新编译VM或使用某种LINUX工具或黑客,我会很高兴。所以现在我们知道这是不可能完成的,我们来做吧。 :)计算线程被抢占了多少次?
编辑:加油的人。另一个问题是与优先事项有关。我想你只是喜欢简单而无聊的问题。问题是清楚而有效的。
如果你能找到Linux的TID(线程ID)为Java线程你感兴趣的(假设你的JVM的地图Java线程上的Linux线程),那么伪文件/proc/<tid>/status
包含很多统计数据,包括voluntary_ctxt_switches
和nonvoluntary_ctxt_switches
。
真棒!人们想要结束这个问题。 ts ts ts – JohnPristine 2012-03-31 15:40:54
它显然不会做你想要的一切,但你可能会发现ThreadMXBean
java.lang.management
可用。
这已经是事了。如果争用时间增加意味着线程被阻塞/中断。人们想要结束这个问题。 ts ts ts – JohnPristine 2012-03-29 18:59:23
这很像我过早的优化。您正在询问正常JVM不提供的事情。你能编辑你的问题并解释你为什么需要这样做吗? – Gray 2012-03-29 16:44:14
可能的重复http://stackoverflow.com/questions/9916876/is-it-possible-to-create-a-high-priority-thread-with-a-regular-jvm-one-that-wil – Gray 2012-03-29 16:44:37
即使它可以完成,但几乎没有任何价值。它将很大程度上取决于你测试的CPU,加上很多其他的环境因素,以及你正在测试的代码的可变性。 – ControlAltDel 2012-03-29 16:46:12