JavaアプリケーションがProtobufメッセージをデータベースに格納しています。アプリケーションは高速ですが、メッセージのすべての部分が常に使用されるわけではないため、不要なデータにCPUサイクルが浪費されるため、処理速度が向上します。また、いくつかのメッセージは木のような構造をしていて、より多くのメモリを割り当てることができます。FlatBufferのゼロ割り当て用のJava実装ですか?
いくつかの調査をした後、FlatBuffersはゼロ割り当て/ゼロ解析であると主張しているので、FlatBuffersはいい代替品に見えます。しかし、benchmarksはC++に対して実行されています。私のアプリケーションはJavaで書かれています。 FlatBufferのJava実装はまだ高速ですが、まだゼロ割り当て/ゼロ解析ですか?
現代のJVMがエスケープ解析を実行し、呼び出しスタックフレームからオブジェクトがエスケープされない場合は、スタックにオブジェクトを割り当てることができます。したがって、オブジェクトを再利用することは必ずしも高速であるとは限らず、キャッシュミスの増加により実際には遅くなることがあります。 – meriton
@meriton良い点ですが、APIはいずれの方法もサポートしています。 – Aardappel