JDK1.5.0_08リリース

遅ればせながら出た、ということで。
SunからJDK5.0(Tiger)のアップデートがリリースされた。*1
http://java.sun.com/j2se/1.5.0/ja/download.html


今回またもや日本語のJavaDocに修正がある。
誤訳だそうだ。
日本語版を愛用されている方は忘れずにダウンロードしたい。

http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/util/LinkedList.html#poll に誤訳

"Retrieves and removes" wrongly translated in following 2 parts.
http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/util/LinkedList.html#poll()
http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/util/LinkedList.html#remove()


さて、今回のリリースノートを見ていると少し退行の文字が目立たないだろうか。JavaVMくらい有料テストだなんだとやっていてもこれだけのエラーが出てしまうところが品質維持の難しさだろうか。


さて今回のリリースは高速さが売りである事が事前に公表されていた。
J2SE5_08は06より17%も速い、らしい。 - minghaiの日記


上と直接の関係があるかどうか知らないが今回のリリースノートにはHotspot関連の更新が多い。
JavaLobbyに投稿されたコメントによると数年越しのバグがとうとう直されたらしい。


139 Fixes and Improvements to Core Java: JDK 5.0 Update 8
http://weblogs.java.net/blog/opinali/archive/2006/08/java_se_50_upda.html

One of the fixed perf bugs is Bug 4803284: Bad performance when HotSpot cannot optimize polymorphic calls, which I reported in January 2003 against JDK 1.4.1. That bug received a partial fix with Tiger-b28, when Sun promised the full solution "in next major release" (Mustang), splitting this to Bug 5074577. There's also a dupe, Bug 4898726: Nonstatic method calls take lot more time than static method calls. Well, it seems Sun kept the promise and these bugs are all fully solved now!

彼の続く説明によると今までInterface経由の多態性呼び出しは遅かったようだがそれが良く最適化されるようになったようだ。
彼のマイクロベンチマークによると35[ns]が14[ns]とほぼ半分になっている。

また彼の説明によるとこちらのほうがリアルワールドでは重要だそう。

there are other important perf bugfixes, like Bug 6298694: bad performance with big object in heap, probably much more important than my "pet bug" discussed here, because the latter can screw up with concurrent GC performance.

確かにやたらと大きなクラスを作ってしまう業務プログラムは多いと思うのでこちらは効くかもしれない。
JDK5.0で開発している方々はu08に上げてみる事を検討されてみてはいかがだろう。


しかし早くもエンバグが報告されているようだ。
XpでのGUIまわりなので限定的だろうか。

I found a very obvious bug relating to the WinXP theme toolbar button... If you use the WinXP Lunar theme you can see the NetBeans & JSwat toolbar buttons aren't displayed correctly.

Whats annoying about the bug Liming Xu mentioned earlier is that it was introduced early in the coding for mustang due to a change in the WinXP L&F, was then reported, and finally fixed in a recent build. Now they've gone and included the bug in JDK5 even though they new it was a bug and had a fix available.

品質維持というのは本当に難しいものです。
自戒を込めて。

*1:それにしても日本語のリリースノートがあるのはありがたい。