RFR (S): 8050114: Expose Integer/Long formatUnsigned methods internally

Ivan Gerasimov ivan.gerasimov at oracle.com
Fri Jul 18 22:20:58 UTC 2014


Hi Claes!

Wouldn't it be better to use do-while here:

  339         while (charPos > offset) {
  340             buf[--charPos] = Integer.digits[val & mask];
  341             val >>>= shift;
  342         }

given the precondition

          // assert len > 0 && (offset + len) <= buf.length : "illegal length";

(charPos > offset) condition should always hold for the first time.

This would save one comparison.

Sincerely yours,
Ivan

On 19.07.2014 1:14, Claes Redestad wrote:
> Hi,
>
>  Mike Duigou suggested some simplifications to the formatUnsigned 
> methods. Shows a slight speed-upon some micros as well:
>
>  http://cr.openjdk.java.net/~redestad/8050114/webrev.2/
>
> /Claes
>
> On 2014-07-13 00:26, Claes Redestad wrote:
>> Hi,
>>
>>  please review this patch to expose formatUnsignedInt/-Long through 
>> JavaLangAccess.
>>
>>  webrev: http://cr.openjdk.java.net/~redestad/8050114/webrev.1/
>>  bug: https://bugs.openjdk.java.net/browse/JDK-8050114
>>
>>  The behavior of the methods have been adjusted to be zero-padding in 
>> case the number formatted is shorter than the specified length, since 
>> that simplifies use cases for which this utility is exposed 
>> internally, e.g., JDK-8006627 
>> <https://bugs.openjdk.java.net/browse/JDK-8006627>. Microbenchmarks 
>> show that this does not adversely affect performance of current uses 
>> through toHexString, toOctalString etc.
>>
>>  Thanks!
>>
>>  /Claes
>
>
>




More information about the core-libs-dev mailing list