1

是否可以使用 jemalloc 设置一个仅从保留的 2^32 字节虚拟内存区域分配页面的竞技场

void* arena_start = 
       mmap(nullptr, 1ull<<32, 
            PROT_NONE, 
            MAP_PRIVATE | MAP_ANONYMOUS, 
            -1, 0);

mallocx因此,使用 arena 的选项从 arena 分配的任何指针MALLOCX_ARENA都可以表示为 32 位索引arena_start

这样做的动机是为了更节省空间的数据结构的指针压缩。(有关类似用例的背景信息,请参阅论文Tranparent Pointer Compression for Linked DataStructures 。)

来自这个线程关于 arenas 的评论让我认为这种类型的定制可能会得到支持。

4

0 回答 0