申請內(nèi)存時,申請的大小是4k的整倍數(shù)時,性能最好.
因為*nix的內(nèi)存頁的大小是4k的,可以通過讀取系統(tǒng)配置驗證這一點
cxdeMacBook-Pro:build cx$ getconf PAGE_SIZE
4096
申請大塊內(nèi)存時,通過簡單的字節(jié)數(shù)校驗,有助于提高程序性能.
template <typename T>
T alignSize(T bytes) {
T ret = bytes;
if (ret & 0xfff) { //0xfff = 4095 如果與4095不為0 說明不是4096對齊的 需要修改
ret &= ~0xfff; //與~0xfff會把低12位清0
ret += 0x1000; //0x1000 = 4096 清0后加上4k大小
}
return ret;
}
int s1 = 4095, s2 = 4097;
int s3 = alignSize(s1);
int s4 = alignSize(s2);
輸出:
cxdeMacBook-Pro:align cx$ ./a.out
s3 : 4096
s4 : 8192