2011/11/15

C# AllocHGlobal と AllocCoTaskMem

この両者、アロケートするだけではパフォーマンス上の差は観測出来なかった。

http://msdn.microsoft.com/ja-jp/library/s69bkh17(v=vs.80).aspx


GlobalAlloc を使用して、プロセスのアンマネージ メモリからメモリを割り当てます。
...
Marshal クラスにはメモリ割り当て API メソッドが 2 つ用意されていますが、AllocHGlobal はその 1 つです。(なお、もう 1 つはMarshal.AllocCoTaskMem です。このメソッドは Kernel32.dll の LocalAlloc Win32 API を公開します。LocalAlloc の詳細については、MSDN ライブラリを参照してください。

どっちやねん、と思ったら、

http://msdn.microsoft.com/ja-jp/library/s69bkh17(v=VS.100).aspx

指定したバイト数を使用して、プロセスのアンマネージ メモリからメモリを割り当てます。

修正されてた。