普通字节数转化为堆单位(heapWordSize)
inline size_t heap_word_size(size_t byte_size) {
return (byte_size + (HeapWordSize-1)) >> LogHeapWordSize;
}
将特定的字节数转化为堆分配的最小单位heap_word_size
举例:64位机器下,如果byte_size=3,heap_word_size=8,那么将分配一个heap_word_size的尺寸
内存对齐
#define align_size_up_(size, alignment) (((size) + ((alignment) - 1)) & ~((alignment) - 1))
上述代码将内存向上对齐
size按照alignment向上对齐,举例:size=3, alignment=4, 则对齐结果是4,如果size=4,alignment=4,则对齐结果是4,如果size=5,alignment=4,则对齐结果为8
#define align_size_down_(size, alignment) ((size) & ~((alignment) - 1))
上述代码将内存向下对齐