Я хотел бы измерить "занятость" моего потока диспетчеризации событий. Одна из возможных идей — настроить фоновый поток, который делает что-то вроде:
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 до его отправки. Это дало бы приблизительное представление об отзывчивости пользовательского интерфейса.
Есть ли в этом смысл? Есть ли более стандартный способ сделать что-то подобное?