JavaFX 8 QuantumRenderer alto uso de CPU

Tengo una aplicación JavaFX que contiene dos vistas de lista que muestran los pedidos de clientes entrantes (usando una fábrica de células personalizada) recibidos de mi servidor. También tengo algunas vistas de tabla que muestran información de una base de datos de Postgres (esto se extiende en unas pocas pestañas dentro de un panel de pestañas). El usuario debe tomar un pedido (haciendo clic en él) e ingresar información en los cuadros de texto.

La aplicación fue inicialmente escrita y desplegada usando Java7. No tuve ningún problema en absoluto. Pero recientemente decidí cambiar a Java8. Modifiqué mi código para usar lambdas y agregué algunas cosas adicionales a la aplicación:

una línea de tiempo para verificar y mostrar el estado de los pedidos cada minuto, dentro de un flujo de texto;modificó la clase customcellfactory para usar un CSS externo, con setId en lugar de setStyle;...

Ahora, la aplicación funciona bien pero, después de 2-3 horas de tiempo de actividad, se vuelve lenta. Como es difícil para mí simular el comportamiento dentro de un generador de perfiles, utilicé jstack,top -Hy coincidenciapid connid para averiguar qué está pasando.

De esta manera descubrí que el culpable eraQuantumRenderer con 95 +% de uso de CPU:

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
30300 utilizat+  20   0 5801608 527412  39696 S  95,1  6,5  60:57.34 java

"QuantumRenderer-0" #9 daemon prio=5 os_prio=0 tid=0x00007f4f182bb800 nid=0x765c runnable [0x00007f4eeb2a1000]
   java.lang.Thread.State: RUNNABLE
    at com.sun.prism.es2.X11GLDrawable.nSwapBuffers(Native Method)
    at com.sun.prism.es2.X11GLDrawable.swapBuffers(X11GLDrawable.java:50)
    at com.sun.prism.es2.ES2SwapChain.present(ES2SwapChain.java:186)
    at com.sun.javafx.tk.quantum.PresentingPainter.run(PresentingPainter.java:107)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
    at com.sun.javafx.tk.RenderJob.run(RenderJob.java:58)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(QuantumRenderer.java:125)
    at java.lang.Thread.run(Thread.java:745)

La máquina que ejecuta la aplicación está utilizando una versión de 64 bits de Lubuntu.

No puedo entender dónde debo mirar para averiguar cuál es el problema ...

Respuestas a la pregunta(1)

Su respuesta a la pregunta