2011-02-16 4 views
2

私は参照値を含む外部に格納された30MBのシリアライズされたクラスを持っています。 Webサービスリクエストが受信されるたびに、シリアライズされたファイルをメモリにロードし、このシリアライズされたクラスに対して特定のキーを検索する必要があります。この操作は時間がかかり、リソースの消費も大きく、アプリケーションのパフォーマンスに悪影響を及ぼします。Loading 大規模なシリアライズされたオブジェクトを照会

私はこれを整理するのを手伝ってください。

答えて

3

明らかに、シリアライズされたコンテンツをデータベースに移動すると、より効率的になります。

+0

問題は、クライアントがルックアップ値をシリアル化された形式でのみ提供することです。展開後も、既存のシリアライズされたファイルを新しいものに置き換えることによって、ルックアップ値の更新が行われます。 – AbrahamJP

+0

それでも、クライアントの受信データとデータベースのデータとのマッピングと比較を行うデータベース層を作成することができます。私はJSONのFacebookからのデータベースを受け取ります..しかし、私はMSSQLでthamを維持..私は両方の間で仕事をするコードを持っていた.. –

+1

あなたが述べたように、私はデータベースに値を読み込むとしようとします。 – AbrahamJP

1

シリアル化されたクラスのLookup値をApplicationオブジェクトにロードしてみてください。この前に、シリアライズされたクラスの値をSystem.Collections.Generic.HashSetにロードする必要があります。

また、hashcode関数をオーバーライドすることを忘れないでください。パフォーマンスを向上させるには、コンストラクタでハッシュコードを事前に生成します。

+0

私はShekarが言及したデータベースの提案を終えたら、これを調べます。どうも – AbrahamJP

関連する問題