内存竞技场和内存池有啥区别?
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/ 以避免混淆。
【讨论】:
以上是关于内存竞技场和内存池有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章