フォームコントロールにロードできるデータの最大量はいくらですか?Windowsフォームコントロールにロードできるデータの最大量はいくらですか?
私のアプリケーションでは、50万を超えるレコードが私の経験ではどのフォームコントロールにも追加されると、メモリが多すぎてハングします。すべての手がかりは?
フォームコントロールにロードできるデータの最大量はいくらですか?Windowsフォームコントロールにロードできるデータの最大量はいくらですか?
私のアプリケーションでは、50万を超えるレコードが私の経験ではどのフォームコントロールにも追加されると、メモリが多すぎてハングします。すべての手がかりは?
はい、問題が発生します。
多くのレコードを追加しないでください。
これ以上のものは必要ありません。代わりに、フィルタリング機能を追加して、ユーザーが使用したいデータの範囲を指定できるようにする必要があります。
たとえば、ユーザーが日付(時間に敏感なデータの場合)または注文番号の範囲を絞り込むようにしてもよいし、何でもよい。
しかし、ではなく、のグリッドに500K行を追加する方法を見つけることができます。
アプリのメモリ占有量が最大に達しているようです。
単一の措置はありません。
アプリケーションメモリには、アプリケーションで使用されているGDIハンドル、ファイルハンドル、スレッドも含まれます。 タスクマネージャなどを使用してGDIハンドルリークがないことを確認してください。
UIに500,000のレコードをロードするのは良い習慣ではありません。ユーザーはそれほど多くの情報を扱うことはできません。ページングやその他の方法でタスクを変更してください。
私が通常行うことは、画面に表示されるレコードの数を制限することです。通常は20に制限されますが、表示しようとしているデータの種類によって異なります。
通常、この後にフィルタリングを適用し、データと修正されたレコード数をアプリケーションに返します。ユーザーがすべてのレコードを見ることができるようにするには、別のアプリケーション(通常はXMLが破損するExcel)にエクスポートすることができます。
しかし、誰も50万レコードを読むことはありません。
これは大きなデータです。まず、データ量を減らすことですが、タグにDataGridView
と書いてあるので、大規模なデータシナリオでは「仮想モード」があります。 MSDNのhere (overview)およびhere (howto)を参照してください。
他のリストベースのコントロールには、「仮想モード」もサポートされています(ただし、すべてではありません)。
+1「質問する必要がある場合は、おそらく間違っていることを指摘しています。 (http://blogs.msdn.com/oldnewthing/archive/2007/07/18/3926581.aspx)。 –
これは私が最初に見つけたときに探していたリンクです:http://blogs.msdn.com/oldnewthing/archive/2007/03/01/1775759.aspx –