-2 c# heap winapi memory-management heap-memory
我创建了一个无法通过GC收集的内存分配库.(https://github.com/10sa/Unmanaged-Memory)
该库分配的堆区域基本上是通过使用WinAPI GetProcessHeap()函数获得的.您还可以创建堆区域并将其分配给它.但是,用于创建堆区域的函数是HeapCreate函数.
问题是,
1.此内存区域(GetProcessHeap())是否由GC管理?
2.如果使用HeapCreate函数创建新的堆区域,GC可以收集生成的堆区域吗?
3.如果上述所有问题都成立,如何在不使用Global Heap的情况下在C#中创建内存区域?
你想在这做什么?已有广泛的内置机制,可通过CLR分配非托管内存,而无需外部工具.
此外,在示例中:在非托管内存中分配4个字节非常非常昂贵且不必要.通常,当我们谈论我们正在谈论的非托管内存砖的记忆-大块,我们再进行细分,并通过巧妙的代码在内部分区.