【发布时间】:2012-11-15 20:42:26
【问题描述】:
是否有一个通用的算法或实现来拥有一个同时适用于class A 及其派生类的内存池?
创建一个仅适用于特定类 A 的 O(1) 内存池是相当容易的。例如:分配一大块数据,即10*sizeof(A),然后在每次需要分配时分配大小为sizeof(A)的1à块。
当我们还可以考虑 A 的派生类时,是否有这样一个简单的实现,它具有更大的大小? 谢谢
【问题讨论】:
-
为什么需要一个具体的内存池?你不能只存储指针并让堆为你工作吗?
-
算子new和算子delete的实践只是一个理论题...
-
我能想到的唯一方法不会产生大的管理问题(对于内存块中的孔和任何东西)是使用层次结构树中最大类的大小作为步长。如果类没有根本不同,你就不会浪费太多空间。
-
有一条 C++ 规则要求将非叶类抽象化。如果你遵循这条规则,你的情况就永远不会出现。
标签: c++ memory memory-management