The standard doclet works by creating `HtmlDocument` objects and then writing 
them out. Writing them can be safely done on a separate thread, and doing so 
results in about an 8% speedup, by overlapping the write/IO time with the time 
to generate the next page to be written.

The overall impact on the codebase is deliberately small, coming down to a 
critical `if` statement in `HtmlDocletWriter` to "write now" or "write later". 
As such, it is easy to disable the feature if necessary, although no issues 
have been found in practice. The background writer uses an `ExecutorService`, 
which provides a lot of flexibility, but experiments show that it is sufficient 
to use a single background thread and to block if new tasks come available 
while writing a file.

The feature is "default on", with a hidden option to disable it if necessary.

-------------

Commit messages:
 - JDK-8002152: javadoc could write out files on a worker thread

Changes: https://git.openjdk.java.net/jdk/pull/2665/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=2665&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8002152
  Stats: 268 lines in 9 files changed: 265 ins; 0 del; 3 mod
  Patch: https://git.openjdk.java.net/jdk/pull/2665.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/2665/head:pull/2665

PR: https://git.openjdk.java.net/jdk/pull/2665

Reply via email to