一部の C# アプリケーションで VirtualAlloc/Free Windows API メソッドが使用されているのを見たので、C# でこれらのメソッドを使用する理由を知りたいと思っていました。
VirtualAlloc/Free は私にとってどのようなメリットがありますか?何かアイデアはありますか?
EDIT : VirtualAlloc は、典型的な .Net "new" ステートメントやその他の .Net メモリ割り当て方法よりも優れたパフォーマンスを発揮しますか?
一部の C# アプリケーションで VirtualAlloc/Free Windows API メソッドが使用されているのを見たので、C# でこれらのメソッドを使用する理由を知りたいと思っていました。
VirtualAlloc/Free は私にとってどのようなメリットがありますか?何かアイデアはありますか?
EDIT : VirtualAlloc は、典型的な .Net "new" ステートメントやその他の .Net メモリ割り当て方法よりも優れたパフォーマンスを発揮しますか?
私が見る唯一の利点は、単一の管理対象オブジェクトのサイズが2GBに制限されていることです。使用VirtualAlloc/VirtualFree
すると、より大きなオブジェクトを管理できます。同時に、HeapAlloc/HeapFree
この目的にはNTヒープ()を使用することをお勧めします。
メモリの状態について読む:コミット済み/予約済み/空きあり。それらを仮想割り当てで使用できます。まれに、それらが役立つ場合があります。
VirtualAllocEx を使用する必要があるシナリオの 1 つは、別のプロセスのアドレス空間にメモリを割り当てる必要がある場合です。マネージド アプリでの VirtualAllocEx または VirtualAlloc の他のユース ケースは想像できません。