VirtualAlloc如何增强.Net应用程序的性能?

时间:2013-01-06 09:13:36

标签: c# performance winapi memory-management

我在一些C#应用程序中看到了VirtualAlloc / Free Windows API方法的一些用法,我想知道在C#中使用这些方法的原因。

VirtualAlloc / Free对我有什么好处,有什么想法?

编辑:VirtualAlloc的性能是否优于典型的.Net“新”语句或任何其他.Net内存分配方法?

2 个答案:

答案 0 :(得分:2)

我看到的唯一好处是单个托管对象的大小限制为2GB。如果您使用VirtualAlloc/VirtualFree,则可以管理更大的对象。同时我建议您使用NT堆(HeapAlloc/HeapFree)来实现此目的。

了解内存状态:已提交/保留/免费。您可以在虚拟分配中使用它们。在极少数情况下,它们很有用。

答案 1 :(得分:1)

需要使用VirtualAllocEx的一种情况是需要在不同进程的地址空间中分配内存。我无法想象托管应用程序中VirtualAllocEx或VirtualAlloc的任何其他用例。