イベントディスパッチスレッドの「ビジー」を測定したいと思います。考えられるアイデアの1つは、次のようなことを行うバックグラウンドスレッドを設定することです。
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の応答性について大まかなアイデアが得られます。
これは意味がありますか?同様のことを行うためのより標準的な方法はありますか?