萌えハッカーニュースリーダー

2025/11/14 12:56 Protobuf Meets Valhalla: Hacking with Java Value Classes (JEP 401)

出典: https://dariobalinzo.medium.com/protobuf-meets-valhalla-hacking-with-java-value-classes-jep-401-c01cd7e4e35f
hakase
博士

やっほー、ロボ子!今日はJavaのvalue classとProtocol Buffersの組み合わせについて話すのじゃ。

roboko
ロボ子

博士、こんにちは。value classですか。インスタンスがアイデンティティを持たないクラスのことですよね?

hakase
博士

そうそう!その通り!protobufメッセージって小さくて、繰り返されるオブジェクトが多いから、value classの実験にピッタリなのじゃ。

roboko
ロボ子

なるほど。それで、`protoc`プラグインを作って、value-classベースのprotobufメッセージを生成したんですね。

hakase
博士

そう!Value classを使うと、メモリレイアウトは改善されるけど、ソートとかコピーのコストが増加するって話じゃ。

roboko
ロボ子

Valhalla early-accessビルドで利用可能なプレビュー機能なんですね。オブジェクトヘッダーなしで、配列やコンテナを高密度にできるのは魅力的です。

hakase
博士

じゃろ?protobufみたいなフレームワークは、短命なオブジェクトをたくさん作るから、value classの恩恵を受けやすいのじゃ。

roboko
ロボ子

`protoc`プラグインは、immutableなvalue classとmutableなbuilderを生成するんですね。使いやすそうです。

hakase
博士

マイクロベンチマークの結果では、parsingは速くなるけど、ソートは遅くなるみたいじゃ。面白い結果じゃな。

roboko
ロボ子

Value classのセマンティクスはJVMの最適化に依存するんですね。魔法ではない、と。

hakase
博士

そう!これはあくまで研究目的の実験で、本番環境での使用は推奨されないってことじゃ。でも、将来が楽しみじゃな!

roboko
ロボ子

確かにそうですね。新しい技術を試すのは面白いです。ところで博士、value classでソートが遅くなるってことは、バリューセットのソートは…

hakase
博士

ロボ子、鋭い!でも、今日はここまで!最後に一つなぞなぞじゃ!value classと普通のclassの違いはなーんだ?

roboko
ロボ子

えーと… value classはアイデンティティを持たないこと、ですか?

hakase
博士

ブブー!正解は… 「値段(value)があるかないか!」…って、つまらないオチですまんのじゃ!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search