我想在 Linux 机器正在使用的大页面上分配内存。我看到有两种方法可以做到这一点,使用mmap
和madvise
。
也就是说,MAP_HUGETLB
在调用中使用标志mmap
-
base_ptr_ = mmap(NULL, memory_size_, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS | MAP_HUGETLB, -1, 0);
还有那MADV_HUGEPAGE
面旗帜madvise
——
madvise(base_ptr_, memory_size_, MADV_HUGEPAGE);
有人可以解释两者之间的区别吗?