我在一些C#应用程序中看到了VirtualAlloc/Free方法的一些用法,我想知道在C#中使用这些方法的原因。
VirtualAlloc/Free会对我有什么好处,有什么想法吗?
编辑:VirtualAlloc会比典型的.Net“新”语句或任何其他.Net内存分配方法表现得更好吗?
发布于 2013-01-06 10:06:35
我看到的唯一好处是,单个托管对象的大小仅限于2GB。如果您使用VirtualAlloc/VirtualFree,您可以管理更大的对象。同时,我建议您为此使用NT堆(HeapAlloc/HeapFree)。
阅读有关内存状态的信息:提交/保留/释放。您可以在虚拟分配中使用它们。在一些罕见的情况下,它们是有用的。
发布于 2013-01-06 10:28:23
需要使用VirtualAllocEx的一个场景是需要在不同进程的地址空间中分配内存。我无法想象VirtualAllocEx或VirtualAlloc在托管应用程序中的其他用例。
https://stackoverflow.com/questions/14180757
复制相似问题