RFR: 8215412: Optimize PrintStream.println methods
Remi Forax
forax at univ-mlv.fr
Wed Jan 2 12:05:13 UTC 2019
Hi Claes,
did you try instead of having a field 'internal' to inline the class check (this.getClass() == PrintStream.class) at every call site you are reading that field ?
for a method like println(), the VM has to do a class check (if CHA is defeated) before entering the method println so the JIT might be able to remove the check this.getClass() == PrintStream.class because it already know at that point that the current class is PrintStream.
happy new year,
Rémi
----- Mail original -----
> De: "Claes Redestad" <claes.redestad at oracle.com>
> À: "Roger Riggs" <Roger.Riggs at oracle.com>, "core-libs-dev" <core-libs-dev at openjdk.java.net>
> Envoyé: Mercredi 2 Janvier 2019 09:44:20
> Objet: Re: RFR: 8215412: Optimize PrintStream.println methods
> Hi,
>
> new webrev:
>
> http://cr.openjdk.java.net/~redestad/8215412/jdk.02/
>
> - Adds a forgotten String.valueOf in println(String), making sure all
> methods are semantically the same for
> - Remove the isInternal method and use only exact match with
> PrintStream.class to determine whether to use the optimized paths.
>
> As before:
>
> On 2018-12-14 21:22, Claes Redestad wrote:
>> Same performance characteristics in the simple tests I've used to
>> verify this, and no measurable regression (but no speed-up) for classes
>> overriding PrintStream.
>
> I've withdrawn the related CSR, since it's not relevant for this
> implementation as it doesn't observably alter behavior of types
> inheriting from PrintStream.
>
> Thanks!
>
> /Claes
More information about the core-libs-dev
mailing list