私の知る限り、Kryo のシリアライズ/デシリアライズはオブジェクトごとに行われます。複数のオブジェクトを単一のファイルにシリアル化することは可能ですか?. 別の同様の SO の質問で提案された回避策の 1 つは、オブジェクトの配列を使用することでした。シリアル化する必要がある膨大な量のデータを考えると、本来あるべきほど効率的ではないと感じています。それは正しい仮定ですか?
3466 次
2 に答える
2
Kryo API は OutputStream を受け取りますか? その場合は、同じ OutputStream をフィードして、複数のファイルをシリアル化します。読み取り時に InputStream で同じことを行います。適切なシリアライゼーション形式には、長さのエンコードまたは終了記号があり、EOF に依存することはありません。
これらのオブジェクトがすべて既にメモリ内にある限り、配列アプローチも最小限のオーバーヘッドで機能します。オブジェクトごとに数バイトを追加して、それらを保持する配列を作成することについて話している。それらがすべてメモリ内にない場合は、最初にそれらすべてをメモリにロードして、それらの周りに配列を作成する必要があります。十分な大きさのデータセットを考えると、これは間違いなく問題になる可能性があります。
于 2011-03-05T04:26:06.387 に答える