Need reviewer for forward port of 6815768 (File.getXXXSpace) and 6815768 (String.hashCode)

Ulf Zibis Ulf.Zibis at gmx.de
Sat Feb 27 15:12:24 UTC 2010


Dmitry,

thanks for the interesting results.

Your results are not as promising as mine.
I guess, referring to the HotSpot's dissassembler dump would give more 
hints.
Additionally different string lengths, repeat factors, -Xbatch, and GC 
settings would help.

Good trick to use substring(1) for cheap instatiation.

To estimate the instantiation cost you could add:
     public int timeInitLong(int reps) {
         int dummy = 0;
         for (int i = 0; i < reps; i++) {
             dummy += LONG.substring(1).offset - 1;
         }
         return dummy;
     }

Do you have any idea, why first hashCode1() warmup is 10 times slower 
than hashCode() warmup in my case?

-Ulf


Am 27.02.2010 15:00, schrieb Dmitry Nadezhin:
> Ulf,
>
> I ran Caliper benchmarks on different variants of hashCode().
> http://code.google.com/p/caliper/
> The results and the Caliper code are below:
>
>   -Dima
>
>
> On Sat, Feb 27, 2010 at 2:18 AM, Ulf Zibis <Ulf.Zibis at gmx.de 
> <mailto:Ulf.Zibis at gmx.de>> wrote:
>
>     Am 26.02.2010 20:32, schrieb Alan Bateman:
>
>         Ulf Zibis wrote:
>         For these other suggestions it would be great to create
>         micro-benchmarks and try our your changes.
>
>         For now though, as I said, I'm just fixing the method to avoid the
>         store for the empty string case.
>
>
>     Here the benchmark for my different approaches on non-empty strings:
>
>     hashCode() warmup =     38,227 ms
>     hashCode1() warmup =    323,462 ms
>     hashCode() time =     12,066 ms
>     hashCode1() time =     11,620 ms
>     hashCodes sum = 0
>     hashCode() warmup =     34,928 ms
>     hashCode1() warmup =     19,010 ms
>     hashCode2() warmup =     25,938 ms
>     hashCode3() warmup =     22,428 ms
>     hashCode4() warmup =     22,966 ms
>     hashCode5() warmup =     21,372 ms
>     hashCode() time =    418,962 ms
>     hashCode1() time =    306,977 ms
>     hashCode2() time =    296,899 ms
>     hashCode3() time =    363,364 ms
>     hashCode4() time =    286,098 ms
>     hashCode5() time =    269,519 ms
>     hashCodes sum = -1427881024
>
>     See new revision:
>     https://java-nio-charset-enhanced.dev.java.net/source/browse/java-nio-charset-enhanced/branches/j7_EUC_TW/src/java/lang/String.java?rev=955&view=markup
>     <https://java-nio-charset-enhanced.dev.java.net/source/browse/java-nio-charset-enhanced/branches/j7_EUC_TW/src/java/lang/String.java?rev=955&view=markup>
>
>     -Ulf
>
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openjdk.java.net/pipermail/core-libs-dev/attachments/20100227/4e565752/attachment.html>


More information about the core-libs-dev mailing list