Linux OS:esは通常、メモリのオーバーコミットを許可します。たとえば、マシンに8GBの物理メモリしかなく、スワップがない場合でも、プロセスは100GBのメモリを割り当てることができます。
割り当てられたすべてのメモリが実際に使用されていない限り、プロセスは機能します。プログラムがそれをすべて使用しようとすると、OOM-killerはプロセスを強制終了してメモリを解放します。
これはWindowsでどのように機能しますか? Windowsは、このメモリが実際のメモリ(物理RAMまたはスワップ))によってバックアップできることを保証できない限り、プロセスに仮想メモリを与えることを拒否しますか?
他の誰も持っていないように、私自身の質問に答えます。
Windowsがメモリをオーバーコミットしないのは事実のようです。これは実際にはLinuxと比較して大きな違いです。
Windowsでは、プログラムがマシンにRAM)があるよりも多くの(仮想)メモリを割り当てることができますが、プログラムによって要求された仮想メモリをバックアップできる十分な空きディスク容量がある場合に限ります。必要に応じてディスクで。
これが関連するかどうかはわかりませんが、Powershellなどの特定のアプリケーションではメモリの使用が制限され、メモリ割り当て設定が変更されない限り、これらのエラーがスローされます。または、Spyderなどの別のアプリケーションを介してコマンドを実行します。