JDK 8 code review request for 6964528: Double.toHexString(double d) String manipulation with + in an append of StringBuilder (original) (raw)
Aleksey Shipilev aleksey.shipilev at oracle.com
Fri Feb 1 22:10:38 UTC 2013
- Previous message: JDK 8 code review request for 6964528: Double.toHexString(double d) String manipulation with + in an append of StringBuilder
- Next message: JDK 8 code review request for 6964528: Double.toHexString(double d) String manipulation with + in an append of StringBuilder
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
+1. Appending char is marginally faster as well.
-Aleksey.
On 02.02.2013, at 2:07, Vitaly Davidovich <vitalyd at gmail.com> wrote:
I'm with Louis on this one. Since you're changing this code anyway, I don't see any reason to use string here.
Sent from my phone On Feb 1, 2013 4:45 PM, "Joe Darcy" <joe.darcy at oracle.com> wrote:
On 02/01/2013 01:41 PM, Louis Wasserman wrote:
Would appending the character 'p' instead of the string "p" make any difference? Not a big enough one for me to feel compelled to look into it ;-) -Joe
On Fri, Feb 1, 2013 at 1:39 PM, Joe Darcy <joe.darcy at oracle.com <mailto:_ _joe.darcy at oracle.com>> wrote: Hello, Please review a simple refactoring fix in Double.toHexString 6964528: Double.toHexString(double d) String manipulation with + in an append of StringBuilder http://cr.openjdk.java.net/
**darcy/6964528.0/<http://cr.openjdk.java.net/darcy/6964528.0/> <http://cr.openjdk.java.net/%**7Edarcy/6964528.0/<http://cr.openjdk.java.net/%7Edarcy/6964528.0/> Patch below. Thanks, -Joe --- old/src/share/classes/java/**lang/Double.java 2013-02-01 13:36:33.000000000 -0800 +++ new/src/share/classes/java/**lang/Double.java 2013-02-01 13:36:33.000000000 -0800 @@ -1,5 +1,5 @@ /* - * Copyright (c) 1994, 2012, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1994, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -289,7 +289,7 @@ return Double.toString(d); else { // Initialized to maximum size of output. - StringBuffer answer = new StringBuffer(24); + StringBuilder answer = new StringBuilder(24); if (Math.copySign(1.0, d) == -1.0) // value is negative, answer.append("-"); // so append sign info @@ -300,8 +300,7 @@ if(d == 0.0) { answer.append("0.0p0"); - } - else { + } else { boolean subnormal = (d < DoubleConsts.MINNORMAL); // Isolate significand bits and OR in a high-order bit @@ -324,13 +323,14 @@ "0": signif.replaceFirst("0{1,12}$"**, "")); + answer.append("p"); // If the value is subnormal, use the Emin exponent // value for double; otherwise, extract and report d's // exponent (the representation of a subnormal uses // Emin -1). - answer.append("p" + (subnormal ? - DoubleConsts.MINEXPONENT: - Math.getExponent(d) )); + answer.append(subnormal ? + DoubleConsts.MINEXPONENT: + Math.getExponent(d)); } return answer.toString(); }-- Louis Wasserman
- Previous message: JDK 8 code review request for 6964528: Double.toHexString(double d) String manipulation with + in an append of StringBuilder
- Next message: JDK 8 code review request for 6964528: Double.toHexString(double d) String manipulation with + in an append of StringBuilder
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]