来由:阅读lighttpd源码时,发现lighttpd申请特定倍数内存时,使用的方法较为晦涩,于是,就想对比自己以前在阅读git源码时学到的方法,感觉git的方法更胜一筹
lighttpd方法:
#define BUFFER_PIECE_SIZE 64
int get_entry_size(int size)
{
int ret_size = size;
if(size <= 0)
return 0;
ret_size += BUFFER_PIECE_SIZE - (b->size % BUFFER_PIECE_SIZE);
return ret_size;
}
git方法
#define BUFFER_PIECE_SIZE 64
int get_entry_size(int size)
{
if(size <= 0)
return 0;
return ((size + BUFFER_PIECE_SIZE - 1) & ~(BUFFER_PIECE_SIZE - 1));
}