Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8096193

javac performance regression due to addition of FXML annotation processor

    XMLWordPrintable

    Details

    • Subcomponent:

      Description

      An FXML annotation processor was added to FX 8u20 (see RT-34472). This has likely caused a performance regression (which needs to be quantified), and possibly a conformance issue as well.

      This issue was pointed out by Joe Darcy while we were discussing RT-36094 which caused compilation warning messages when compiling any file with javac, even one that doesn't use FX.

      This can be verified compiling a simple "no-op" test program.

      ---------- Noop.java ----------
      public class Noop {
          public static void main(String[] args) {
          }
      }
      -------------------------------

      $ javac -J-Dsun.misc.URLClassPath.debug=true Noop.java

      which lists, among other things, all jar files and classes that are opened during compilation.

      If you run with JDK 8 or 8u20-b03 then jfxrt.jar is not opened.

      If you run with JDK 8u20-b04 then you will see that jfxrt.jar is opened and com/sun/javafx/fxml/annotation/FXMLAnnotationProcessor.class is loaded. Also, a warning message is printed due to RT-36094 (fixed after b04).

      The warning message has been fixed, but jfxrt.jar is still opened and the FXML annotation processor is still run when compiling any .java file with javac.

      We should consider making the annotation processor optional (if that is even possible) or removing it.

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              msladecek Martin Sládeček
              Reporter:
              kcr Kevin Rushforth
              Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved:
                Imported: