C# .Net を使用して Windows アプリケーションを開発しています。これは、実際には DBMS にインストールされるプラグインです。このプラグインの目的は、DBMS 内のすべてのレコード (レコードはオブジェクトです) を読み取り、指定された条件に一致して、ローカル ファイル システムに XML ファイルとして転送することです。私の問題は、メモリの使用に関連しています。すべてが正常に機能しています。しかし、レコードを読み取るたびにメモリが占有され、一定の制限を超えると、メモリ不足のためにプラグインが機能しなくなります。
私は約 10k-20k のレコード (オブジェクト) を扱っています。C#には、XMLファイルに書き込まれるとすぐに各レコードのメモリをクリアするメモリ関連のメソッドがありますか. clear()、flush()、gc()、および finalize()/ などの基本的なメモリ処理メソッドをすべて試しましたが、役に立ちませんでした。
彼が次のことを考慮してください:
- レコードはオブジェクトです。これを変更して、他の効率的なデータ構造を使用することはできません。
- レコードを読み取るたびに、それらを XML に書き込みます。これを何度も繰り返します。