RFR: 8013395 StringBuffer.toString performance regression impacting embedded benchmarks
Alan Bateman
Alan.Bateman at oracle.com
Fri May 10 08:31:58 UTC 2013
On 10/05/2013 07:03, David Holmes wrote:
> Short version:
>
> Cache the value returned by toString and use it to copy-construct a
> new String on subsequent calls to toString(). Clear the cache on any
> mutating operation.
>
> webrev: http://cr.openjdk.java.net/~dholmes/8013395/webrev.v2/
>
> Testing: microbenchmark for toString performance; new regression test
> for correctness; JPRT testset core as a sanity check
>
There is a bit of cringe factor to this one but you've clearly explained
the rational. I think it has to limited to StringBuffer for correctness
reasons. Overall I think it is harmless and is okay. I see Peter's
suggestion about caching the char[] rather than String, seems a good
idea but probably remote issue (not to mention that developers have been
encouraged to move to StringBuilder for many years).
One comment on the test is that at L205 then it could also test a != b.
-Alan.
More information about the core-libs-dev
mailing list