我正在写一个内存管理器。我分配了一大块动态内存并将其拆分为各种大小的内存池。大小范围从 8 到 256,是 8 的倍数。当内存请求到来时,根据大小,我从其中一个池中分配一个内存块。我维护一个映射所需大小和内存池的哈希表。
我不想在分配的内存中保留簿记信息,因此我为每个池使用一个单链表来跟踪空闲块。我的问题是 i) 由于内存池中所有块的块大小是统一的,我决定不对这些块进行排序。即当内存请求到来时,我将分配内存池中的第一个块,当它被释放时,我将它插入到空闲列表的前面。这样,内存分配和释放都会更快。此外,由于池中的块大小相同,因此不会发生碎片。你觉得这有什么问题吗?
问问题
1544 次