Re: RFR (S): 8050114: Expose Integer/Long formatUnsigned methods internally
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
Re: RFR (S): 8050114: Expose Integer/Long formatUnsigned methods internally
Looks good. I will complete some additional testing and push this changeset for you. On Jul 18 2014, at 14:14 , Claes Redestad claes.redes...@oracle.com 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. All of the existing users of this method pre-size their char buffer and use a zero offset so there are no changes in behaviour. (In case anyone was wondering) Mike
Re: RFR (S): 8050114: Expose Integer/Long formatUnsigned methods internally
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
Re: RFR (S): 8050114: Expose Integer/Long formatUnsigned methods internally
You are correct. I will switch to a do-while. Mike On Jul 18 2014, at 15:20 , Ivan Gerasimov ivan.gerasi...@oracle.com wrote: 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