【发布时间】:2012-04-09 14:29:07
【问题描述】:
tcmalloc/jemalloc 是改进的内存分配器,还引入了内存池以实现更好的内存分配。那么它们之间有什么区别以及如何在我的应用程序中选择它们呢?
【问题讨论】:
-
何不同时尝试一下,看看哪一个更适合您?如果我们没有关于您的用例的更多信息,这个问题就没有正确的答案。
-
首先,您的应用程序必须进行大量分配/deallocaitons。然后它必须是真正的性能关键。然后你必须分析它并证明堆分配实际上是你的瓶颈。只有这样开始尝试不同的分配器才有意义。您的库存可能已经足够了。
-
只要您每秒不处理数千个分配,使用其中任何一个都是没有意义的。它们是为特定目的而构建的。不要将它们与作为静态内存分配的内存池混为一谈,在这种情况下,必须使用适合您的程序的独特逻辑来处理行为。
标签: c linux memory malloc tcmalloc