12得票2回答
斯蒂芬·拉瓦维奇的Mallocator在C++11中是否相同?

8年前,Stephen Lavavej发布了一个名为“Mallocator”的简单分配器实现的博客文章。自那以后,我们已经过渡到C++11(很快就会是C++17)时代......新的语言特性和规则是否会影响Mallocator,还是仍然与原来一样相关?

11得票2回答
非Boost STL分配器用于进程间共享内存?

由于我工作的政策,我无法使用比1.33.1更新的Boost版本以及比4.1.2更新的GCC版本。是的,这很糟糕,但我无能为力。Boost 1.33.1不包含interprocess库。 话虽如此,我的一个项目需要将std::map(或更可能是std::unordered_map)放入共享内存...

10得票2回答
一个分配器如果是无状态的,这意味着什么?

什么是无状态分配器?我知道std::allocator是malloc的封装,没有自己的状态。同时,malloc会进行自己的内存管理,因此可以说所有的std::allocator实例都使用同一个状态。 如果不用状态,如何实现池式分配器?如果不是分配器,什么会保持当前内存状态? 在这个上下文中...

33得票1回答
新的C++代码应该使用内存资源而不是分配器吗?

C++17将为我们带来std::pmr::memory_resource,这是一个用于分配和释放内存的干净接口。与Allocator概念不同的是,它只做这一件事情,没有其他功能。还会有std::pmr::polymorphic_allocator,它将内存资源包装成经典分配器,以便与现有容器一...

12得票2回答
std::unique_ptr<T[]>和自定义分配器删除器

我正在尝试使用自定义内存分配器与std::unique_ptr&lt;T[]&gt;一起使用。基本上,我有自定义分配器,它们是IAllocator的子类,提供以下方法: void* Alloc( size_t size ) template&lt;typename T&gt; T* Allo...

9得票4回答
自定义分配器的性能

我正在构建一个AVL树类,它将有一个固定的最大项目数。因此,我想,与其逐个分配每个项目,不如一次性分配整个块,并使用位图在需要时分配新内存。 我的分配/释放代码: avltree::avltree(UINT64 numitems) { root = NULL; if (!numi...

40得票7回答
一个 size_type 是否可能比 std::size_t 更大?

使用std::allocator的标准容器将其size_type定义为std::size_t。然而,是否可能有一个分配器来分配大小不能用size_t表示的对象?换句话说,size_type可以比size_t更大吗?

12得票1回答
自定义C++分配器在GCC中调试时非常缓慢。这个问题有解决方法吗?

我在苦恼我的自定义分配器的性能问题。我的问题与调试版本相关。 通常情况下,如果只有一点性能损失,我并不介意。但当前我正在玩的游戏帧率只有4fps,而没有使用自定义分配器时帧率可以达到60fps(并且可能更快)。这使得软件开发变得更加困难。 我把问题追踪到了……基本上继承了标准分配器 请查看来自...

7得票1回答
复制有状态内存分配器:标准库分配器语义和内部内存

我正在编写一组分配器,旨在用于非常高性能的环境中,因此稍微受限的使用(由编译器调节,而不是运行时错误)是可取的。我已经阅读了C++11状态分配器的语义以及符合容器的预期使用方式。 下面贴出一个简单的分配器,它只包含分配器对象内的一块内存。在C++03中,这是不合法的。 template &...

12得票1回答
为什么元组有uses_allocator但是对偶没有?

在尝试使用C++11中的std::scoped_allocator_adaptor时,我注意到C++11 FDIS为元组定义了std::uses_allocator的特化(20.4.2.8[tuple.traits]),但对于pair却没有,虽然在所有其他情况下,pair看起来和行为都像元组(...