内存竞技场和内存池有啥区别?

Posted

技术标签:

【中文标题】内存竞技场和内存池有啥区别?【英文标题】:What's the difference between a memory arena and a memory pool?内存竞技场和内存池有什么区别? 【发布时间】:2018-01-16 17:50:34 【问题描述】:

我已经看到了用于内存分配器的包装器的这两个术语,它们之间有什么区别? (如果有的话)

【问题讨论】:

作者选择的词语。你喜欢“竞技场”还是更愿意在“泳池”中畅游? 好吧,在竞技场中,你必须与其他程序争夺内存。在游泳池里,每个人都在游泳、漂浮或下沉。但是,没有救生员值班,所以如果遇到麻烦,您必须自己处理。 :-) 【参考方案1】:

What's the difference between a memory arena and a memory allocator?

此页面上的最佳答案指出:

“Memory arena”通常是指一个大的内存块(或块的集合),从中分配较小的块。 “池”这个词也常用来表示这样的事情。

所以基本上:它们的意思是相同的,它们只是用于相同概念的不同术语。

【讨论】:

【参考方案2】:

区域内存管理内存插槽有时称为“竞技场”,有时称为“池”。 “池”不仅用于原生代码 C/C++ 中的原生原始内存管理,还用于 JVM 中以保持温暖的内存并最大限度地减少 GC 暂停的延迟影响。

它不再相同,不应将“对象池”称为“竞技场”,因为 rust 也采用了 -https://manishearth.github.io/blog/2021/03/15/arenas-in-rust/ 以避免混淆。

【讨论】:

以上是关于内存竞技场和内存池有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章

boost--内存池

PoolManager游戏内存池

xmlx 和 MaxRAM JVM 参数有啥区别?

内存池——TCMalloc&JEMalloc

虚拟内存和物理内存有啥区别?

Java 非堆内存和栈内存有啥区别?它们是不是相同,如果不同,它们之间有啥区别?