Benefit from computing String Hash at compile time?

Fredrik Öhrström fredrik.ohrstrom at oracle.com
Wed Jan 6 01:19:12 PST 2010


Joseph D. Darcy skrev:
> And implicit in mandating that formula is mandating that formula going 
> forward for all subsequent releases.  Otherwise, there is often not 
> much point in specifying a particular hash function.
>
>   
The best would be to defer the choice how to implement the string switch 
entirely to the JVM, akin to how the plain switch does it. Obviously 
this is not an option since string switch belongs to project Coin that 
cannot change the bytecodes.

Thus Joe's design is good since it gives the best worst case behavior 
for  interpreting  and non-optimizing JVMs. Our JVM will probably detect 
the string  switch pattern and rip out all the hashcode and everything 
and replace it with something more optimized when it will give us a 
performance advantage. Thus the generated string switch bytecode should 
be as easy to detect and rip out as possible. (Which was the reason for 
my previous gripe where I wanted a simpler pattern, but I forgot about 
the low end JVMs.) Computing the hash at runtime would make the pattern 
worse and gain nothing since the hash is indeed specified in the 
specification.

//Fredrik



More information about the coin-dev mailing list