bitIndex6()
456.719 457 ibm13index6e.csv Thread priority = 5 Classic VM IBM Corporation 1.3.0 1.3.0 IBM Corporation
|
486.462 486 ms114index6e.csv Thread priority = 5 null null null 1.1.4 Microsoft Corp.
|
361.481 361 sun12index6e.csv Thread priority = 5 Classic VM Sun Microsystems Inc. 1.2 1.2 Sun Microsystems Inc.
|
591.169 591 sun131index6e.csv Thread priority = 5 Java HotSpot(TM) Client VM Sun Microsystems Inc. 1.3.1-b24 1.3.1 Sun Microsystems Inc.
|
728.77 729 sun141index6e.csv Thread priority = 5 Java HotSpot(TM) Client VM Sun Microsystems Inc. 1.4.1-b21 1.4.1 Sun Microsystems Inc.
|
606.939 607 sun142index6e.csv Thread priority = 5 Java HotSpot(TM) Client VM Sun Microsystems Inc. 1.4.2_01-b06 1.4.2_01 Sun Microsystems Inc.
|
bitIndex8()
418.503 418 ibm13index8e.csv Thread priority = 5 Classic VM IBM Corporation 1.3.0 1.3.0 IBM Corporation
|
455.988 456 ms114index8e.csv Thread priority = 5 null null null 1.1.4 Microsoft Corp.
|
337.237 337 sun12index8e.csv Thread priority = 5 Classic VM Sun Microsystems Inc. 1.2 1.2 Sun Microsystems Inc.
|
567.88 568 sun131index8e.csv Thread priority = 5 Java HotSpot(TM) Client VM Sun Microsystems Inc. 1.3.1-b24 1.3.1 Sun Microsystems Inc.
|
627.207 627 sun141index8e.csv Thread priority = 5 Java HotSpot(TM) Client VM Sun Microsystems Inc. 1.4.1-b21 1.4.1 Sun Microsystems Inc.
|
574.385 574 sun142index8e.csv Thread priority = 5 Java HotSpot(TM) Client VM Sun Microsystems Inc. 1.4.2_01-b06 1.4.2_01 Sun Microsystems Inc.
|
Evil looking bitIndex9()
22.033 22 ibm13index9e.csv Thread priority = 5 Classic VM IBM Corporation 1.3.0 1.3.0 IBM Corporation
|
463.16 463 ms114index9e.csv Thread priority = 5 null null null 1.1.4 Microsoft Corp.
|
322.418 322 sun12index9e.csv Thread priority = 5 Classic VM Sun Microsystems Inc. 1.2 1.2 Sun Microsystems Inc.
|
523.457 523 sun131index9e.csv Thread priority = 5 Java HotSpot(TM) Client VM Sun Microsystems Inc. 1.3.1-b24 1.3.1 Sun Microsystems Inc.
|
523.457 523 sun131index9e.csv Thread priority = 5 Java HotSpot(TM) Client VM Sun Microsystems Inc. 1.3.1-b24 1.3.1 Sun Microsystems Inc.
|
513.895 514 sun142index9e.csv Thread priority = 5 Java HotSpot(TM) Client VM Sun Microsystems Inc. 1.4.2_01-b06 1.4.2_01 Sun Microsystems Inc.
|
It would appear that IBM's JVM optimized bitIndex9() out!
As a whole they appear to be slower (than bitIndex5() ) under microbench mark conditions. Personnally I was expecting that the JIT compilers would be considerably slower due to most JIT's being nothing more than a Interpreter without the overheads of interpreting (!). Interpreters dont reorder code they execute each byte code as it comes.
All but one JVM is able to beat the original bitIndex2().
Note that the 1.4.2 -server -Xcompile scores are not present, as I have not finished playing with it yet.
I have tested it on bitTest2, 4 & 5.
Using -Xcompile made no difference to the
client JVM as neither did changing the amount of "warm up" time.
The
server version when using just the -server switch manages to optimize out the the benchmark completely giving a score of zero. When combined with -Xcompile a score is presented, it has the greatest gain (percentage increase over bitIndex2() ) in the order of 190% for bitIndex4(), which is faster that bitIndex5(). But is using 308 clocks to do it.
Obviously the microbenchmark is going to have to be modified in order to stop the code being optimized out.
It would be interesting to try them on a P4 which has a very long pipeline, so surely bitIndex9() would be faster than bitIndex5().
Cold fish all round then!
-------
Woz.