【发布时间】:2015-08-08 20:39:25
【问题描述】:
我想在 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);
谁能解释一下两者的区别?
【问题讨论】:
标签: c linux memory-management mmap huge-pages