gpt4 book ai didi

c++ - 在 jemalloc 中获取每个内存分配的 bin 大小

转载 作者:行者123 更新时间:2023-11-30 03:34:47 26 4
gpt4 key购买 nike

我运行一个使用 jemalloc 作为内存分配器的 C++ 程序,它将大块预先划分为预定义大小的小块(即 1、2、4、8、... 字节)

即使我请求 110 字节的内存分配,它返回的内存容量为 128 字节。

在我的程序中,我跟踪动态分配的内存量(具有高度不同的大小)并限制线程的内存分配以避免 OutOfMemory 崩溃。

但是,由于请求的大小和实际授予的大小之间存在差异,我无法准确计算动态分配的字节数。

是否有任何“jemalloc”API 接收请求大小作为输入并提供实际分配大小作为输出?

谢谢

最佳答案

根据文档,您可以使用 malloc_usable_size() 并传递分配的指针。

The malloc_usable_size function returns the usable size of the allocation pointed to by ptr. The return value may be larger than the size that was requested during allocation. The malloc_usable_size function is not a mechanism for in-place realloc; rather it is provided solely as a tool for introspection purposes. Any discrepancy between the requested allocation size and the size reported by malloc_usable_size should not be depended on, since such behavior is entirely implementation-dependent.

更多信息:

关于c++ - 在 jemalloc 中获取每个内存分配的 bin 大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41799548/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com