【发布时间】:2012-06-28 01:28:43
【问题描述】:
我现在正在编写游戏引擎。对我来说最难的部分是内存管理。我一直在进行尽可能多的优化(因为每一帧都很重要,对吗?)并意识到解决这个问题的最佳方法是使用堆栈和池分配器进行资源管理。问题是,我不知道如何创建一个由这些分配器管理内存的单例类。
我的单例是管理器,所以它们实际上相当大,它们的内存管理对于我的游戏的启动速度很重要。我基本上希望能够调用我的分配器的alloc() 函数,它返回类型void*,并在这个分配的空间中创建我的单例。
我一直在考虑在每个单例类中放置一个名为instantiated 的static boolean,如果instantiated 为真,则让构造函数返回NULL。这行得通吗?
【问题讨论】:
-
你需要多少个单身人士?一、五个不同的类,好几个类,也许你真的想要一个“multiton”
-
您确定需要所有优化吗?即使是引擎,您仍然应该先进行分析。
标签: c++ memory memory-management