内存管理模式

Memory management patterns

我想知道比使用工厂更有效的其他模式。

先测量。如果你还没有证明你的分配器是一个性能问题,那么你不应该优化它。您不释放内存的解决方案实际上可能表现更差(例如,如果您使用简单的空闲列表,则在遍历列表时可能会花费大量时间处理缓存未命中)。

如果内存分配是瓶颈,请研究更好的分配器。 TCMalloc还是不错的,如果你想花大价钱也有商业和跨平台的解决方案。

但是在你做任何激烈的事情之前使用分析器和测量。

你可以使用内存池,boost 非常好: http://www.boost.org/doc/libs/1_58_0/libs/pool/doc/html/boost_pool/pool.html

并且每个客户端都可以配置池的最大大小。 分配和释放会非常快,你会放弃你的工厂实现