メモリ割り当てエラーは、ページ ファイルの増加が遅い場合に発生する可能性があります

この記事では、アプリケーションが頻繁にメモリを割り当てるときに発生するエラーの回避策について説明します。

適用対象: Windows 10 - すべてのエディション
元の KB 番号: 4055223

現象

メモリを頻繁に割り当てるアプリケーションでは、ランダムな "メモリ不足" エラーが発生する可能性があります。 このようなエラーにより、影響を受けるアプリケーションで他のエラーや予期しない動作が発生する可能性があります。

原因

メモリ割り当てエラーは、システム内の追加のメモリ要件をサポートするためにページ ファイルのサイズの拡大に関連する待機時間が原因で発生する可能性があります。 これらのエラーの原因として考えられるのは、ページ ファイル のサイズが "自動" として構成されている場合です。ページ ファイルの自動サイズは小さなページ ファイルから始まり、必要に応じて自動的に大きくなります。

IO システムは、ファイル システム フィルター、ファイル システム、ボリューム フィルター、ストレージ フィルターなど、多くのコンポーネントで構成されます。 特定のシステム上の特定のコンポーネントは、ページ ファイルの拡張にばらつきを引き起こす可能性があります。

回避策

この問題を回避するには、ページ ファイルのサイズを手動で構成します。 これを行うには、次の手順を実行します。

  1. Windows ロゴ キーと Pause/Break キーを押して 、システムプロパティを開きます。
  2. [システムの詳細設定] を選択し、[詳細設定] タブの [パフォーマンス] セクションで [設定] を選択します。
  3. [詳細設定] タブを選択し、[仮想メモリ] セクションで [変更] を選択します。
  4. [すべてのドライブのページング ファイル サイズを自動的に管理するチェック] ボックスをオフにします。
  5. [ カスタム サイズ] を選択し、ページング ファイルの [初期サイズ] と [最大サイズ] の値を設定します。 初期サイズは、システム内の RAM の 1.5 倍に設定することをお勧めします。
  6. [ OK] を選択 して設定を適用し、システムを再起動します。 "メモリ不足" エラー メッセージが引き続き表示される場合は、ページ ファイルの "初期サイズ" を増やします。

状態

Microsoft は、これがWindows 10の問題であることを確認しました。

詳細

Microsoft Visual C++ コンパイラ (cl.exe) を使用しているときにこの問題が発生すると、次のような断続的なビルド エラーが発生する可能性があります。

  • 致命的なエラー C1076: コンパイラの制限: 内部ヒープに達しました。/Zm を使用して、より高い制限を指定する
  • 致命的なエラー C1083: opentypefile: 'file': message
  • 致命的なエラー C1090: PDB API 呼び出しに失敗しました。エラー コード 'code': 'message'
  • コンパイラ エラー C3859: PCH の仮想メモリ範囲を超えました。'-ZmXXX' 以上のコマンド ライン オプションを使用して再コンパイルしてください

Visual C++ コンパイラ エラーとその回避策の詳細については、「 プリコンパイル済みヘッダー (PCH) の問題と推奨事項」を参照してください。