我想测量我的事件调度线程的“忙碌”。一种可能的想法是设置一个后台线程,该线程执行以下操作:
while(true) {
final long[] end = new long[1]; // Array to get stuff out from Runnable.
long start = System.nanoTime();
EventQueue.invokeAndWait(new Runnable() {
public void run() {
end[0] = System.nanoTime();
}
});
long queueTimeNs = end[0] - start;
// Report the queue time somewhere.
Thread.sleep(100); // Poll the EDT < 10 times/s.
}
这个想法是测量从将事件发送到 EDT 到它被分派所需的时间。这将大致了解 UI 的响应性。
这有道理吗?有没有更标准的方法来做类似的事情?