質問

いserialize膨大な量のデータ(2gigs)の小さなオブジェクトを単一のファイルのため、処理後に他のJavaプロセス。性能は重要です。誰でもできるので提案しているのではなく実現。

役に立ちましたか?

解決

してください。見googleの プロトコルのバッファー?音のように利用ケースに入れてみました。

他のヒント

なぜだかよくわかりませんJavaの直列化のた投票での完全な機構。

でなからのオリジナルポストは、すべての2Gのデータエディタで開き、ヒープは同時にできますか。やきダンピングしたか?

箱から出して、直列化できないのではないで"最適ソリューションがExternalizableを実装する場合自体を直列化できる仕事です。Serializations大きな費用はコーヒーに飽きたら寿司にどのような書き方を書きます。の実施により外部化可能、その判断の手とともにブーストパフォーマンススペースの節約になります。

なI/Oではコストの大量のデータを、付随的費用のデータ変換のできないかもしれません。例えば、だいたいすべての番号テキストとしても、店舗によりネイティブのフォーマットが可能です。ObjectStreamのメソッドを読み取り-書き込みをネイティブの種類がJava.

すべてのデータがロードされる単一の構造できないObjectOutputStream.writeObject(yourBigDatastructure、まExternalizableを実装.

しかし、このまま対して繰り返し処理を実行お造と呼びwriteObjectは、個々のオブジェクト。

いずれにおいも"objectToFile"通常のも確かです。ことになる効果的に何がExternalizableを提供などの枠組みへの道を歩ます。

その他の問題はもちろん、バージョン管理等かを実装するすべての直列化ルーチンを自分で完全に制御しています。

る最も簡単なアプローチに来てすぐに私の心は使用メモリ-マップされたバッファのNIO(java.nio.MappedByteBuffer).利用の単一のバッファ(約)に該当するサイズのオブジェクトおよびフラッシュ/追加の出力ファイルが必要です。メモリ-マップされたバッファ 非常に effecient.

また釣りをしたjava直列化?い出しを使用 ObjectOutputStream を読むライフスタイルを使用して、 ObjectInputStream.もちろん、授業について Serializable.この低努力解、その物の収納バイナリでコンパクトさと迅速さを可能にしています。

あくまでも輸入され、その後必要な書います。のものを使用できるコンパクトのバイナリ形式です。で2GBのディスクI/O操作は非常に重要です。をご利用の場合人間が読める形式のようにXMLや他のスクリプトでリサイズのデータの2倍以上。

によってデータをできる速度が圧縮データの低圧縮率となる。

合計でいないがJava直列化で読みJavaチェック各オブジェクトの場合はを参考に、既存のオブジェクトです。

私は開発JOAFIPデータベース"として整備した。

Apacheアブロ もう置す.できる言語に依存してバインディングのための 人気の言語.

チェックアウトしました。

プロトコルのバッファー:意味がある。こちらの抜粋からのwiki: http://code.google.com/apis/protocolbuffers/docs/javatutorial.html

ますます速度

デフォルトでは、プロトコルのバッファのコンパイラを少ないファイルを使用反射多機能など構文解析および直列化).しかし、コンパイラを発生させることもできコードを明示的に最適化されたメッセージの種類、提供する桁の性能向上が倍増のサイズのコードです。ればプロファイリングがお客様の支出に多くの時間をプロトコルのバッファは、図書室、実際に試したほうがよいでしょう変化する最適化モードになります。単純に以下の行を追加します.プロトファイル:

オプションoptimize_for=速度

再実行のプロトコルのコンパイラで発生は非常に高速の解析、直列化は、その他のコードです。

るべきと考えデータベース解--すべてのデータベースは最適の情報は、ご利用の場合は、Hibernateおいオブジェクトモデルとしてはと思っておDB(このようhibernateは、店舗のデータ、を持ってプラ)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top