• 2.312

      When running on Java 7, Jenkins should ensure that all its ClassLoader instances are marked parallel-capable. This would improve class loading speed in some circumstances—mainly during startup or when first using new features, but also when searching for Groovy imports and the like.

      At least UberClassLoader, DependencyClassLoader, AntClassLoader2, and PluginFirstClassLoader should be so marked. (PluginFirstClassLoader ought to be made to extend AntClassLoader2 since we control it; all superclasses must be marked.) To work on Java 7, can use this idiom:

      try {
          Method m = ClassLoader.class.getDeclaredMethod("registerAsParallelCapable");
          m.setAccessible(true);
          boolean b = (Boolean) m.invoke(null);
          if (!b) {
              ...warn...
          }
      } catch (NoSuchMethodException x) {
          // fine, Java 6
      } catch (Exception x) {
          ...warn...
      }
      

      (Unfortunately this pattern must be repeated in such class, since registerAsParallelCapable is caller-sensitive.)

          [JENKINS-23784] Allow parallel class loading

          Jesse Glick created issue -
          Jesse Glick made changes -
          Link New: This issue is related to JENKINS-24309 [ JENKINS-24309 ]
          R. Tyler Croy made changes -
          Workflow Original: JNJira [ 156574 ] New: JNJira + In-Review [ 179333 ]
          Jesse Glick made changes -
          Attachment New: config.xml [ 33593 ]
          Jesse Glick made changes -
          Status Original: Open [ 1 ] New: In Progress [ 3 ]
          Jesse Glick made changes -
          Assignee New: Jesse Glick [ jglick ]
          Jesse Glick made changes -
          Labels Original: classloader performance threads New: classloader performance threads workflow
          Jesse Glick made changes -
          Remote Link New: This issue links to "script-security PR 80 (Web Link)" [ 14721 ]
          Jesse Glick made changes -
          Remote Link New: This issue links to "workflow-cps PR 42 (Web Link)" [ 14722 ]
          Jesse Glick made changes -
          Status Original: In Progress [ 3 ] New: Open [ 1 ]
          Andrew Bayer made changes -
          Labels Original: classloader performance threads workflow New: classloader performance pipeline threads workflow

            Unassigned Unassigned
            jglick Jesse Glick
            Votes:
            2 Vote for this issue
            Watchers:
            8 Start watching this issue

              Created:
              Updated: