JDK-8104130 : add instrumentation points in runtime for performance tracking
  • Type: Task
  • Component: javafx
  • Sub-Component: graphics
  • Affected Version: fx1.2
  • Priority: P4
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2009-03-05
  • Updated: 2015-06-16
  • Resolved: 2009-03-10
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
Other
fx1.2Fixed
Related Reports
Blocks :  
Duplicate :  
Description
Probably the main places to instrument in the runtime would be:

    1) GUIRuntimeProvider
        This is only used when launching command line and I think from JNLP, but will measure the amount of time from FX startup to when we get called
    2) Applet.fx
        Need this as well for the applet case, measures the amount of time from FX startup to when the Applet gets called
    3) Fonts
        Using the Font support in Toolkit to measure the time it takes to look up fonts, and the number of times fonts are loaded
    4) Toolkit Startup
        The amount of time it takes to run the startup routine, including setting LAF etc
    5) The amount of time it takes to apply stylesheets to a Scene
    6) The amount of time it takes to create and initialize the stage (this would mainly measure the toolkit time to create a Frame)
    7) The amount of time it takes to create a Node
        - if in the test code all nodes are given an ID, the metrics could indicate both the Class type of the node and the actual ID of the node, so that if there are specific nodes that take longer to load (image or media nodes for example) then we will be able to flag those in the results

Comments
Additional instrumentation points: http://jfxsrc.sfbay.sun.com/javafx/marina/scrum/graphics/runtime/rev/555a63c5ee96
11-03-2009

Added instrumentation based on sun.misc.PerformanceLogger. The FX code can use com.sun.javafx.perf.PerformanceTracker class for logging events. The logging is enabled via the "sun.perflog" property (see sun.misc.PerformanceLogger.java in the jdk source for details on how to enable looing in to a file vs the console [default]). By default the log will be dumped on first repaint. It can also be triggered on application exit by setting this property: -Dsun.perflog.fx.exitflush=true . The following toolkit-independent points added: JavaFX> GUIRuntimeProvider constructor: 1236645464783 JavaFX> GUIRuntimeProvider.run called: 1236645464908 JavaFX> Toolkit.startup: 1236645464924 JavaFX> Toolkit.createTKStage - creating a stage: 1236645465189 JavaFX> Toolkit.createTKStage - stage created: 1236645465189 JavaFX> Toolkit.startup - finished: 1236645465345 JavaFX> Scene - first repaint: 1236645465345 JavaFX> Scene - first repaint - layout complete: 1236645465345 There are also some toolkit-specific points as well.
10-03-2009

webrev: http://javaweb.sfbay/~tdv/webrevs/marina/RT-3544 http://jfxsrc.sfbay.sun.com/javafx/marina/scrum/graphics/runtime/rev/c915d7e4cbb1
10-03-2009