C# : メモリ不足の例外
2024-01-02 09:41:36
質問
今日、私のアプリケーションで
OutOfMemoryException
. 私は4GBのRAMと多くの仮想メモリを持っているので、私にとってこれは常にほとんど不可能でした。このエラーは、既存のコレクションを新しいリストに追加しようとしたときに発生しました。
List<Vehicle> vList = new List<Vehicle>(selectedVehicles);
私の理解では、新しいリストが含むべき車両がすでにメモリ内に存在しているので、ここで割り当てられるメモリはそれほど多くありません。私は認めなければなりません
Vehicle
は非常に複雑なクラスであり、一度に約 50,000 のアイテムを新しいリストに追加しようとしました。しかし、すべての
Vehicle
は 200MB しかないデータベースから取得したものなので、何が原因で
OutOfMemoryException
を引き起こす可能性があるのか見当もつきません。
どのように解決するのですか?
2点です。
- 32 ビット Windows を実行している場合、4 GB すべてにアクセスすることはできず、2 GB しかありません。
-
の基礎となる実装は
List
は配列であることを忘れないでください。メモリが激しく断片化されている場合、配列に割り当てるのに十分な連続した領域がない可能性があります。List
を割り当てるのに十分な連続した領域がない可能性があります。
関連
-
[解決済み] [Solved] 1つ以上のエンティティで検証に失敗しました。詳細は'EntityValidationErrors'プロパティを参照してください [重複]。
-
[解決済み] UnityでOnCollisionEnterが呼ばれない
-
[解決済み】Unity 「関連するスクリプトを読み込むことができません」「Win32Exception: システムは指定されたファイルを見つけることができません"
-
[解決済み】C#のequal to演算子でtextとvarcharのデータ型は互換性がない
-
[解決済み] 2つのリストを結合する
-
[解決済み】ファイルやアセンブリ、またはその依存関係の1つをロードできませんでした。
-
[解決済み】データが存在しないのに読み込もうとする試みが無効である
-
[解決済み] キーワード「ref」と「out」の違いは何ですか?
-
[解決済み】Node.jsのヒープがメモリ不足になる。
-
[解決済み] .NET Out Of Memory Exception - 1.3GB使用したが16GBインストールされている
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】コンパイルエラー「未割り当てのローカル変数を使用しています」が発生したのはなぜですか?
-
[解決済み] メンバー '<メンバー名>' にインスタンス参照でアクセスできない
-
解決済み] Critical error detected c0000374 - C++ dll returns pointer off allocated memory to C# [解決済み] Critical error detected c0000374 - C++ dll returns pointer off allocated memory to C#.
-
[解決済み] 'SubSonic.Schema .DatabaseColumn' 型のオブジェクトをシリアライズする際に、循環参照が検出されました。
-
[解決済み】MetadataException: 指定されたメタデータ・リソースをロードできない
-
[解決済み】ファイルへの読み書きの際に共有違反のIOExceptionが発生する C#
-
[解決済み】2つ(またはそれ以上)のリストを1つに統合する(C# .NETで
-
[解決済み】 C# 条件演算子エラー 代入、call、increment、decrement、await、new object 式のみ文として使用可能です。
-
[解決済み】プロセスが実行されているかどうかを知るには?
-
[解決済み] .NET Out Of Memory Exception - 1.3GB使用したが16GBインストールされている