The perf diff is more that what i was expected :)

Looks good to me !

Rémi 

----- Mail original -----
> De: "Claes Redestad" <claes.redes...@oracle.com>
> À: "Remi Forax" <fo...@univ-mlv.fr>
> Cc: "core-libs-dev" <core-libs-dev@openjdk.java.net>
> Envoyé: Mercredi 2 Janvier 2019 21:32:09
> Objet: Re: RFR: 8215412: Optimize PrintStream.println methods

> Hi again,
> 
> as expected not much of a difference on the test I was using (a small
> cost on the startup/warmup numbers due replacing a boolean check with a
> method call), but on a test that adds in a few extended PrintStreams
> and mixes those with use of System.out I can get a ~3-4% statistical
> improvement with your idea - so I think it's better to peel off
> the PrintStream.class check like this:
> 
> http://cr.openjdk.java.net/~redestad/8215412/jdk.03/
> 
> Thanks!
> 
> /Claes
> 
> On 2019-01-02 13:29, Claes Redestad wrote:
>> Hi Rémi,
>> 
>> 
>> On 2019-01-02 13:05, Remi Forax wrote:
>>> 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.
>> 
>> interesting idea - I'll try it out. I don't expect it to make much of a
>> difference in my current (trivial) tests, but perhaps in a slightly more
>> contrived setup.
>> 
>> happy new year!
>> 
> > /Claes

Reply via email to