¿Manera correcta de mover un nodo arrastrando en javafx 2?

Estoy convirtiendo una aplicación Swing / Graphics2D con mucha pintura personalizada a una aplicación JavaFX2. Aunque me encanta la nueva API, parece que tengo un problema de rendimiento al pintar una elipse que quiero pintar debajo del cursor del mouse donde sea que se mueva el mouse. Cuando muevo el mouse de manera estable, no muy rápido, me doy cuenta de que la elipse siempre está dibujada unos centímetros detrás del rastro del mouse y solo se recupera cuando dejo de mover el cursor. Esto en un scenegraph con solo unos pocos nodos. En mi aplicación Swing no tuve ese problema.

Me pregunto si este es el enfoque correcto para dibujar una forma donde está el cursor del ratón.

import javafx.application.Application;
import javafx.event.EventHandler;
import javafx.scene.Scene;
import javafx.scene.SceneBuilder;
import javafx.scene.input.MouseEvent;
import javafx.scene.layout.Pane;
import javafx.scene.paint.Color;
import javafx.scene.shape.Ellipse;
import javafx.scene.shape.EllipseBuilder;
import javafx.stage.Stage;

public class TestApp extends Application {
public static void main(String[] args) {
    launch(args);
}

@Override
public void start(Stage primaryStage) throws Exception {
    Pane p = new Pane();

    final Ellipse ellipse = EllipseBuilder.create().radiusX(10).radiusY(10).fill(Color.RED).build();
    p.getChildren().add(ellipse);

    p.setOnMouseMoved(new EventHandler<MouseEvent>() {
        public void handle(MouseEvent event) {
            ellipse.setCenterX(event.getX());
            ellipse.setCenterY(event.getY());
        }
    });

    Scene scene = SceneBuilder.create().root(p).width(1024d).height(768d).build();
    primaryStage.setScene(scene);

    primaryStage.show();
}
}

Pequeña actualización: Aunque actualicé a JavaFX 2.2 y Java7u6 (en Windows 7 64bit), no parece hacer una diferencia.

Respuestas a la pregunta(8)

Su respuesta a la pregunta