Practical memory pool based allocators for Modern C++
986.95 KB
49 页
0 评论
语言 | 格式 | 评分 |
---|---|---|
英语 | .pdf | 3 |
摘要 | ||
本文档探讨了在现代C++中基于内存池的分配器的实际应用,特别是在安全关键环境中的应用。文中提到内存分配对于C++来说是基础,但在安全关键应用中需要确定性和可认证性。通过内存池和分配器组合,可以解决这一问题。实现包括内存池、分配器及其生成桶定义的方法,分配器符合C++标准,能够在开发和生产环境中透明分配内存。文档还讨论了使用不同内存池的场景以及与C++内存管理的兼容性。 | ||
AI总结 | ||
《Practical memory pool based allocators for Modern C++》摘要
这篇文章由Misha Shalem(Apex.AI)在CppCon 2019会议上发表,主题是针对现代C++的基于内存池的分配器的实际应用。文章主要探讨了在安全关键型环境中,如何通过内存池和分配器来实现高效、确定性和可认证的内存管理。
核心观点:
1. 内存分配是C++的基本功能,尤其在安全关键型应用中,内存分配必须是可预测和可靠的。
2. 基于固定大小桶的内存池可以解决内存分配问题,但其与C++分配器模型的集成较为复杂。
3. 文章提出了一种结合内存池和工具分析的分配器方案,能够满足安全认证要求。
实现细节:
- 该方案由三部分组成:
1. 内存池:用于实际的内存分配。
2. 分配器:实现了标准C++分配器模型,能够绑定到特定的内存池,并在开发和生产环境中透明分配内存。
3. 桶定义生成机制:根据实际分配需求自动生成内存桶定义。
- 分配器兼容`std::allocator_traits`,支持编译时绑定到内存池,并在内存池定义完成后透明分配内存。
应用场景:
- 内存池可以用于嵌套对象的分配,既支持相同内存池也支持不同的内存池,通过参数化分配器和域适配器实现灵活分配。
内存池与C++的关系:
- 分配器可以重新绑定为不同类型(rebound),并 sempre熟悉其分配的实际类型。
- 分配器通过`allocator`模板实现了类型安全和内存分配的灵活性。
总结:这篇文章通过内存池和分配器的结合,为现代C++在安全关键型环境中提供了一种高效、可靠且符合认证要求的内存管理方案。 |
P1
P2
P3
P4
P5
P6
P7
P8
P9
P10
P11
P12
下载文档到本地,方便使用
- 可预览页数已用完,剩余
37 页请下载阅读 -
文档评分