切尼垃圾收集器:Win32 API调用

时间:2014-07-09 21:17:01

标签: c winapi memory-management compiler-construction garbage-collection

我正在为一种语言编写一个垃圾收集器,我不确定我应该使用哪些Win32 API调用来为Cheney算法分配to-from-space。以下是正确的方法,如果没有,那么正确的方法是什么?

初始化

现在我正在考虑p = q = VirtualAlloc(NULL, dwSize, MEM_RESERVE, PAGE_READWRITE)以便分配两个半空间,每个半空间大小为dwSize/2。不确定我是否应该使用MEM_RESERVE og MEM_COMMIT

分配

每当需要分配时,我都可以VirtualAlloc(q, sizeOfObj, MEM_COMMIT, PAGE_READWRITE)(假设我在初始化时MEM_RESERVED),然后递增q

垃圾收集

将所有内容移到空间后,我可以使用VirtualFree(p, dwSize/2, MEM_DECOMMIT)释放内存。 MEM_DECOMMIT是正确的方法吗?

必要的链接:

0 个答案:

没有答案