RFR: 8303078: Reduce allocations when pretty printing JCTree during compilation [v3]

Jonathan Gibbons jjg at openjdk.org
Wed Feb 22 19:02:55 UTC 2023

On Wed, 22 Feb 2023 18:12:28 GMT, Christoph Dreis <duke at openjdk.org> wrote:

>> src/jdk.compiler/share/classes/com/sun/tools/javac/tree/DocPretty.java line 195:
>>> 193:     public Void visitDocRoot(DocRootTree node, Void p) {
>>> 194:         try {
>>> 195:             print("{");
>> there are some instances of `print("\n");` that could be `print('\n');` few lines above this point
> Done - but had to change the one with the `sep` argument to take a char instead of String. Seems not used elsewhere, but wasn't sure because of the `protected`

While `DocPretty` is public, the package is not publicly exported from the `jdk.compiler` module, and there are no subtypes within the JDK code base, so I think we can ignore the `protected` for now.

If we wanted to be paranoid, it would be reasonable to change `print(char)` to something along the lines of

if (Character.isASCII(ch)) out.write(ch); else print((Character) ch);


PR: https://git.openjdk.org/jdk/pull/12667

More information about the compiler-dev mailing list