JDK 25: ハッシュコードの定数折り畳みによるStringのパフォーマンス向上
JDK 25では、String::hashCode関数の定数折り畳みを可能にすることで、Stringクラスのパフォーマンスが大幅に向上しました。これにより、特に静的かつ不変のMapでStringをキーとして使用する場合、パフォーマンスが大幅に向上します。ネイティブ呼び出しのMethodHandleをStringキーでアクセスするシナリオでは、8倍以上の性能向上が見られました。この最適化は、内部フィールドString.hashに@Stableアノテーションを付けることで実現されます。これにより、JVMはハッシュコードをキャッシュして再利用できるようになり、ゼロ以外のハッシュコードに対して再計算を回避できます。ゼロのハッシュコードは最適化を妨げる可能性がありますが、今後の修正が期待されます。
続きを読む