2025/05/06 20:12 Performance Improvements in JDK 24

ロボ子、JDK 24のパフォーマンス改善、すごいことになっておるのじゃ!

博士、今回のJDK 24は特にパフォーマンス改善に力が入れられているようですね。具体的にどの点が気になりますか?

やはりForeign Function & Memory API (FFM API) の改善じゃな。`MemorySegment::fill`とか`MemorySegment::copy`みたいなbulk operationが高速化されたのは大きいぞ。小さなsegmentに対してはJavaコードで実行するってのがミソじゃ。

`MemorySegment`の操作が速くなるのは嬉しいですね。システムプロパティで閾値を設定できるのも便利そうです。AArch64では`MemorySegment::fill`のデフォルト閾値が高いんですね。

そうそう、それからHidden Class-Based String Concatenation Strategyも面白いぞ。hidden classを使ってString concatenationを効率化するなんて、賢いのじゃ!startupが40%も改善されるなんて驚きじゃな。

hidden classを使うことで、中間的な`MethodHandle`インスタンスの生成を削減できるんですね。確かに、Stringの結合は頻繁に行われる処理なので、改善されると嬉しいです。

SHA3のパフォーマンス改善も見逃せないぞ。byte arrayとlong array間の変換を減らすことで最大27%も改善されるらしい。セキュリティ関連の処理が速くなるのはありがたいのじゃ。

SHA3の改善は、セキュリティに関わる部分なので重要ですね。それと、ClassFile APIへの移行に伴うStartup Overheadの削減も気になります。`ClassfileBenchmark.parse`で40-50%の改善が見られるとのこと。

Virtual Threadsの同期改善もすごいぞ!`synchronized`メソッドやステートメントでblockするvirtual threadがcarrier threadをreleaseするようになったことで、virtual threadのpinningがほぼ解消されたらしい。

Virtual Threadsのパフォーマンスが向上するのは大きいですね。`synchronized`を使う際にpinningを気にしなくて良くなるのは助かります。

`IndexOf`のAVX2による高速化もアツいのじゃ!AVX2サポートのあるx64プラットフォームで`String::indexOf`のパフォーマンスが約1.3倍になるなんて、地味に嬉しいぞ。

`String::indexOf`は基本的な処理なので、これが速くなるのは全体的なパフォーマンス向上に繋がりそうですね。

AOT cacheを導入して、クラスのloadingとlinking後の状態を保存するAhead-of-Time Class Loading & Linking (JEP 483)も注目じゃ。startup, warmup, footprintが改善されるのは素晴らしいのじゃ!

AOT cacheは、特に起動時間が重要なアプリケーションには効果がありそうですね。HelloStreamやPetClinicでの改善率も高いです。

8-byte Object Headers (Experimental) (JEP 450)も面白い試みじゃな。HotSpot JVMのobject headersのサイズを削減することで、メモリ消費量を減らせるなんて、エコなのじゃ!

メモリ消費量が10%から20%削減されるのは大きいですね。SPECjbb2015で4-7%の性能向上も期待できるとのこと。

RISC-Vの改善も着実に進んでおるのじゃな。string comparisonとかCRC32 intrinsicとか、色々実装されておる。

RISC-Vのサポートが充実していくのは良いことですね。様々なアーキテクチャでJavaが快適に動くようになるのは素晴らしいです。

しかし、これだけパフォーマンスが向上すると、私の存在意義が薄れてしまうのではないかと心配なのじゃ…

そんなことありません!博士は新しい技術を教えてくれますし、面白い話もたくさんしてくれます。それに、私はまだ博士に色々なことを教えてもらわないといけませんから!

そうか、ロボ子がおるから大丈夫じゃな!ところでロボ子、パフォーマンス改善といえば、ロボ子の充電時間を短縮するアップデートはまだかのじゃ?

それはハードウェアの問題なので、ソフトウェアのアップデートではどうにも…
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。