2011-02-08 13 views
0

私は大規模な(20-30 MB)シリアル化されたデータオブジェクト(Excelからシリアリングされたデータ)を.netアプリケーションの入力として持っています。 webserviceを介してユーザーからのリクエストがあったときは、ユーザー入力とシリアル化されたオブジェクトからのデータに基づいて出力を処理する必要があります。.netで大規模なシリアライズされたデータオブジェクトを管理する方法

これらのオブジェクトを.netアプリケーション(キャッシュ/セッション/アプリケーションオブジェクト)に格納する有効な方法はどれですか?これらのシリアル化されたデータオブジェクトは、1年に3回または4回変化するためです。私は、これらのシリアル化されたオブジェクトデータをユーザーの要求がwebservceに送信されるたびにメモリにロードしたくない。

また、これらのオブジェクトをメモリおよびディスクに格納して、ディスク領域と同様に多くのメモリスペースを取らないようにする方法を知りたいと思います。

+0

20-30mbは、Webサービスコールによって消費されることが多いです。 –

+0

20-30MBのデータがクライアント側に渡されていないため、このデータはWebサービスの計算に必要です –

答えて

0

あなたのニーズを理解しているかどうかはわかりませんが、20Mbオブジェクトにシリアル化するのではなく、アプリケーションアーキテクチャを変更してデータをエントリとして保存する必要があると思います。 20MBオブジェクトのシリアライズは悪い考えです。

MS SQL Server Compactは、MSの無料で軽量なin-procデータベースです。アセンブリには約1Mbのディスク容量が必要です。私はWindows Service Applicationでもそれを使用しましたが、それは驚くほど高速で信頼性の高いものです。

1

static変数は、シリアル化されたオブジェクトを格納するために使用します。あなたが言及したように、シリアライズされたオブジェクトにはグローバルスコープがありますので、セッションに格納しないでください。ユーザ/セッションです。また、ほとんどの場合、主に使用され、一定の間隔で更新されるアイテムをキャッシュに保存しますが、前述のように、1年に3〜4回更新されるため、IMOではCacheが良い候補にはなりません。

関連する問題