RFR [9]: 8050142: Optimize java.util.Formatter

Claes Redestad claes.redestad at oracle.com
Mon Jul 14 14:21:03 UTC 2014


Yes, might be worth addressing just for correctness/readability.

/Claes

On 07/14/2014 03:02 PM, Ivan Gerasimov wrote:
> A very minor one:
> 2704                 if (Character.isUpperCase(conv))
> 2705                     f.add(Flags.UPPERCASE);
> 2706                 c = Character.toLowerCase(conv);
>
> maybe
>
> 2704                 if (Character.isUpperCase(conv))  {
> 2705                     f.add(Flags.UPPERCASE);
> 2706                     c = Character.toLowerCase(conv);
>                       }
>
> Sincerely yours,
> Ivan
>
>
> On 14.07.2014 16:23, Claes Redestad wrote:
>> Hi again,
>>
>>  updated webrev: http://cr.openjdk.java.net/~redestad/8050142/webrev.1
>>
>>  changes:
>>  - specify capacity on line 2931 as suggested by Andrej Golovnin
>>  - exp.append("0") -> exp.append('0') on line 3781
>>  - merged append+justify into appendJustified as suggested by Peter 
>> Levart
>>  - replaced the reoccuring pattern of appending a number of zeros 
>> into a call to trailingZeros
>>
>>  performance difference seemingly at noise levels in micros, but 
>> bonus to readability and Formatter*.class-files are now a total of 
>> 246 bytes smaller
>>
>> /Claes
>>
>> On 2014-07-14 13:29, Claes Redestad wrote:
>>> Hi Peter,
>>>
>>> On 2014-07-14 13:25, Peter Levart wrote:
>>>> On 07/14/2014 12:07 PM, Claes Redestad wrote:
>>>>> Hi,
>>>>>
>>>>>  please review this patch which optimizes away some allocations 
>>>>> from java.util.Formatter and achieve 1.1-1.3x speedups of micros 
>>>>> targetting String.format. See bug for more details.
>>>>>
>>>>>  webrev: http://cr.openjdk.java.net/~redestad/8050142/webrev.0
>>>>>  bug: https://bugs.openjdk.java.net/browse/JDK-8050142
>>>>>
>>>>>  Testing: JPRT, jtreg (java/lang/String, java/util/Formatter), 
>>>>> SPECjbb2013 and microbenchmarks
>>>>>
>>>>>  Thanks!
>>>>>
>>>>>  /Claes
>>>>
>>>> Hi Claes,
>>>>
>>>> Since justify() result is always appended to the resulting 
>>>> Appendable, you could merge the functionality and eliminate 
>>>> constructing intermediary StringBuilder altogether:
>>>>
>>>> http://cr.openjdk.java.net/~plevart/jdk9-dev/Formatter/webrev.01/
>>>>
>>> Looks good, especially eliminating the need for two different append 
>>> methods. I'll update based on this and other suggestions.
>>>
>>> /Claes
>>>> Regards, Peter
>>>
>>
>>
>>
>




More information about the core-libs-dev mailing list