gpt4 book ai didi

带有 jemalloc 的 C++ STL

转载 作者:可可西里 更新时间:2023-11-01 15:03:30 27 4
gpt4 key购买 nike

如何将 C++ STL 容器与 jemalloc(或任何其他 malloc 实现)一起使用?

是不是像include jemalloc/jemalloc.h那么简单?或者我应该为他们写一个分配器吗?

编辑:我正在处理的应用程序在其生命周期内分配和释放相对较小的对象。我想要替换默认分配器,因为基准测试显示应用程序不会扩展到超过 2 个内核。分析显示它正在等待内存分配,这就是导致缩放问题的原因。据我了解,jemalloc 将对此有所帮助。


我希望看到一个平台中立的解决方案,因为应用程序必须在 Linux 和 Windows 上运行。 (在 Linux 下链接不同的实现很容易,但据我所知在 Windows 上很难。)

最佳答案

C++ 允许您replace operator new。如果这个替换 operator new 调用 je_malloc,那么 std::allocator 将间接调用 je_malloc,然后所有标准容器将。

这是迄今为止最简单的方法。编写自定义分配器需要编写整个类。替换 malloc 可能还不够(不能保证未替换的 operator new 调用 malloc),并且它具有前面提到的风险阿德里安·麦卡锡

关于带有 jemalloc 的 C++ STL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9521226/

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