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