All
Our application has a simple TableView that takes an incoming server object and displays it for the user. When it receives a similar object the model will attempt to find the previous object and update one or two cells with new status values. Nothing taxing one would think. I have turned off the CSS so we are using the default. We also have Platform.runLater in our model so when we are about to update the GUI that takes place.
The application functions correctly, but when ramping up the inserts to say 1 every second we see a slow down in the application. The application does function but response it slow when clicking on drop down menus etc. I have attached a profiler stack trace. And we saw that the QuantumToolkit seems to be doing all of the work. Any ideas on how we can trace if further.
Our object is very simple in that we have some properties that are used to show updates to the row when changed. Most of the fields that need to be updated are set using SimpleDoubleProperty or StringProperty etc.
Apologies for the formatting, this was exported from the profiler.
Call tree (all threads together)
+----------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------+-----------------+
| Name | Time (ms) | Own Time (ms) |
+----------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------+-----------------+
| +---<All threads> | 77,931 100 % | |
| | | | |
| +---com.sun.javafx.tk.quantum.QuantumToolkit$8.run() | 71,251 91 % | 182 |
| | | | | |
| | +---javafx.scene.Scene$ScenePulseListener.pulse() | 71,009 91 % | 0 |
| | | | | | |
| | | +---javafx.scene.Scene.access$3000(Scene) | 66,294 85 % | 0 |
| | | | | | | |
| | | | +---javafx.scene.Scene.doLayoutPass() | 66,294 85 % | 0 |
| | | | | | | |
| | | | +---javafx.scene.Scene.layoutDirtyRoots() | 66,294 85 % | 0 |
| | | | | | | |
| | | | +---javafx.scene.Parent.layout() | 66,294 85 % | 0 |
| | | | | | | |
| | | | +---javafx.scene.Parent.layout() | 65,188 84 % | 0 |
| | | | | | | | |
| | | | | +---javafx.scene.Parent.layout() | 65,144 84 % | 0 |
| | | | | | | | | |
| | | | | | +---javafx.scene.Parent.layout() | 65,144 84 % | 0 |
| | | | | | | | | |
| | | | | | +---javafx.scene.Parent.layout() | 59,823 77 % | 0 |
| | | | | | | | | | |
| | | | | | | +---com.sun.javafx.scene.control.skin.VirtualFlow.layoutChildren() | 52,938 68 % | 20 |
| | | | | | | | | | | |
| | | | | | | | +---javafx.scene.control.Control.impl_processCSS(boolean) | 44,568 57 % | 0 |
| | | | | | | | | | | | |
| | | | | | | | | +---javafx.scene.Parent.impl_processCSS(boolean) | 44,568 57 % | 0 |
| | | | | | | | | | | | |
| | | | | | | | | +---javafx.scene.Parent.impl_processCSS(boolean) | 30,346 39 % | 0 |
| | | | | | | | | | | | | |
| | | | | | | | | | +---javafx.scene.control.Control.impl_processCSS(boolean) | 30,182 39 % | 0 |
| | | | | | | | | | | | | | |
| | | | | | | | | | | +---javafx.scene.Parent.impl_processCSS(boolean) | 30,182 39 % | 0 |
| | | | | | | | | | | | | | |
| | | | | | | | | | | +---javafx.scene.Node.impl_processCSS(boolean) | 26,135 34 % | 0 |
| | | | | | | | | | | | | | | |
| | | | | | | | | | | | +---com.sun.javafx.css.StyleHelper.transitionToState(Node) | 25,492 33 % | 762 |
| | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | +---javafx.scene.control.Control$12.set(String) | 24,092 31 % | 0 |
| | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | +---com.sun.javafx.css.StyleableStringProperty.set(String) | 24,092 31 % | 0 |
| | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | +---javafx.beans.property.StringPropertyBase.set(String) | 24,092 31 % | 0 |
| | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | +---javafx.beans.property.StringPropertyBase.markInvalid() | 24,092 31 % | 0 |
| | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | +---javafx.scene.control.Control$12.invalidated() | 24,092 31 % | 0 |
| | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | +---javafx.scene.control.Control.access$500(Control) | 24,092 31 % | 0 |
| | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | +---javafx.scene.control.Control.loadSkinClass() | 24,092 31 % | 102 |
| | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | +---java.lang.reflect.Constructor.newInstance(Object[]) | 20,791 27 % | 4,752 |
| | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | +---javafx.scene.Node.addEventHandler(EventType, EventHandler) | 2,848 4 % | 0 |
| | | | | | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | +---javafx.scene.layout.StackPane.<init>() | 1,982 3 % | 0 |
+----------------------------------------------------------------------------------------------------------------------------------------------------------------+-----------------+-----------------+
Generated by YourKit Java Profiler 10.0.6 Feb 27, 2012 11:41:24 AM