为weak_ptr定制分配器

问题描述 投票:0回答:1

从CPU的高使用率中 RtlpLowFragHeapAllocFromContext() 我的猜测是 std::weak_ptr() 我经常使用的(调用 .lock() 上的)应该是不使用内部高效内存池,而是求助于的罪魁祸首。malloc()free()newdelete 伙伴们。

有没有一种方法可以指定自定义分配器,为一个 std::weak_ptr? 如果是,怎么做?如果没有,为什么?

更新:上传剖析器快照。Profiler Snapshot

c++ c++11 shared-ptr allocator memory-pool
1个回答
3
投票

weak_ptr 不分配内存,也不做任何操作(这些操作都是 noexcept). 它的工作基于分配,而分配是任何一个 shared_ptr的控制块。您可以自定义 shared_ptr的控制块分配行为,但这与 weak_ptr 本身。

© www.soinside.com 2019 - 2024. All rights reserved.