Also mein Problem ist folgendes. Ich habe einen MouseMotionListener, der auf Draggingbewegungen in einer JTable hört. Allerdings ist beim Draggen eine deutliche Verzögerung spürbar. Da die mouseDragged() Methode einige Berechnungen anstellt, dachte ich, dass diese zu langsam ablaufen würden. Ein Test hat allerdings gezeigt, dass dem nicht so ist. Nach einigen Tests mittels System.currentTimeMillis() wird die gesamte mouseDragged() Methode in weniger als einer Millisekunde abgearbeitet. Das erscheint mir zwar etwas sehr wenig, aber selbst wenn es 10ms sind, dürfte eine solche Verzögerung doch eigentlich nicht spürbar sein.
Ich habe daher mal getestet, in welchen Abständen die mouseDragged-Methode aufgerufen wird, und da ist das Bild schon ein anderes. In knapp 300 Durchläufen (also während eines einzigen Drag-Vorgangs) wurde mouseDragged in 131 Fällen 156ms nach dem vorigen Aufruf abgearbeitet (zwischen zwei Aufrufen lagen 156ms). In 52 Fällen war der Abstand 157ms. Alle anderen Zeiten wurden weniger als 30 mal erreicht und weisen eine große Spannbreite auf (0 bis 266 ms).
(Ich hoffe das war soweit halbwegs klar, was ich meine.)
Meine Frage nun:
Woher kann diese große Verzögerung resultieren? Die Abarbeitung der Methode selbst geht ja deutlich schneller. Wo könnte ich ansetzen, um hier den Flaschenhals zu finden?
Ich habe daher mal getestet, in welchen Abständen die mouseDragged-Methode aufgerufen wird, und da ist das Bild schon ein anderes. In knapp 300 Durchläufen (also während eines einzigen Drag-Vorgangs) wurde mouseDragged in 131 Fällen 156ms nach dem vorigen Aufruf abgearbeitet (zwischen zwei Aufrufen lagen 156ms). In 52 Fällen war der Abstand 157ms. Alle anderen Zeiten wurden weniger als 30 mal erreicht und weisen eine große Spannbreite auf (0 bis 266 ms).
(Ich hoffe das war soweit halbwegs klar, was ich meine.)
Meine Frage nun:
Woher kann diese große Verzögerung resultieren? Die Abarbeitung der Methode selbst geht ja deutlich schneller. Wo könnte ich ansetzen, um hier den Flaschenhals zu finden?