On solaris/sparc, simple UTF encoding and decoding loops perform significantly
slower with the merlin client VM when compared to the ladybird client VM (the
performance discrepancy does not show up with the server VM, nor with client
and server VMs on win32). The micro-benchmarks attached to this bug report
UTF-encode and decode random strings to/from preallocated byte and char
buffers; encoding is ~72% slower with the merlin client VM, while decoding is
~26% slower:
ladybird:
$ java -version
java version "1.3.1"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.1-b24)
Java HotSpot(TM) Client VM (build 1.3.1-b24, mixed mode)
$ java EncodeUTF 10 1000 10000
Elapsed time: 14959 ms.
$ java DecodeUTF 10 1000 10000
Elapsed time: 24317 ms.
merlin:
$ java -version
java version "1.4.0-beta"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.0-beta-b64)
Java HotSpot(TM) Client VM (build 1.4.0-beta-b64, mixed mode)
$ java EncodeUTF 10 1000 10000
Elapsed time: 25724 ms.
$ java DecodeUTF 10 1000 10000
Elapsed time: 30675 ms.
This performance regression affects serialization speed, since serialization
uses UTF strings to transmit class information as well as the text of String
objects.
slower with the merlin client VM when compared to the ladybird client VM (the
performance discrepancy does not show up with the server VM, nor with client
and server VMs on win32). The micro-benchmarks attached to this bug report
UTF-encode and decode random strings to/from preallocated byte and char
buffers; encoding is ~72% slower with the merlin client VM, while decoding is
~26% slower:
ladybird:
$ java -version
java version "1.3.1"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.1-b24)
Java HotSpot(TM) Client VM (build 1.3.1-b24, mixed mode)
$ java EncodeUTF 10 1000 10000
Elapsed time: 14959 ms.
$ java DecodeUTF 10 1000 10000
Elapsed time: 24317 ms.
merlin:
$ java -version
java version "1.4.0-beta"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.0-beta-b64)
Java HotSpot(TM) Client VM (build 1.4.0-beta-b64, mixed mode)
$ java EncodeUTF 10 1000 10000
Elapsed time: 25724 ms.
$ java DecodeUTF 10 1000 10000
Elapsed time: 30675 ms.
This performance regression affects serialization speed, since serialization
uses UTF strings to transmit class information as well as the text of String
objects.