Speedy Java 6
I was quietly minding my own business, fixing some encoding bugs in Eddie, my liberal RSS and Atom parser, when I noticed that Java 6 included support for UTF-32, which is one of the encoding tests that was failing. I downloaded and installed the Ubuntu packages and installed it, and decided to run a quick benchmark using my unit tests.
First up was the Sun Java 5 JVM. I’d been running the unit tests all night, but timed it this time,and got these results:
Ran 3502 tests
Passed 3322 tests
Failed 180 tests
real 1m10.293s
user 0m40.375s
sys 0m3.632s
Next I tried the Sun Java 6 JVM, using the same jar files and got;
Ran 3502 tests
Passed 3326 tests
Failed 176 tests
real 0m56.059s
user 0m39.198s
sys 0m4.212s
One thing to note was that it spend a couple of seconds noticing new jars to read, so I decided to run it again and got:
Ran 3502 tests
Passed 3326 tests
Failed 176 tests
real 0m45.317s
user 0m34.770s
sys 0m3.516s
Wow, I’d gone from 70 seconds to 45 seconds using the new runtime, and interestingly enough, past 4 more tests in the process. I’m assuming they are the UTF-32 tests, although I have’t checked yet. The other thing for me to try is recompiling the code to see if that has any additional benefits.
Update: Got around to checking what Java 6 fixed and it turned out it was the additional support for koi-u and cspc862latinhebrew encodings. After I fixed the UTF32 support in Eddie, it passed an additional 16 tests. Down to just 160 out of 3502. I just wish they would add support for some of the stranger encodings. Maybe this will happen when it’s open source.
Filed under java
1 comment
Comments are closed. These are preserved from the original site.
Isn't some of that down to caching? What happens if you run twice under Java 5 and use the second set of times?