我现在正在编写游戏引擎。对我来说最难的部分是内存管理。我一直在尽可能多地进行优化(因为每一帧都很重要,对吗?)并意识到解决这个问题的最佳方法是使用 Stack 和 Pool 分配器进行资源管理。问题是,我不知道如何制作由这些分配器管理内存的单例类。
我的单例是管理器,所以它们实际上相当大,它们的内存管理对我的游戏启动速度很重要。我基本上希望能够调用我的分配器的 alloc()
函数,它返回类型 void*
,并在这个分配的空间中创建我的单例。
我一直在考虑在每个单例类中放置一个名为 instantiated
的 static boolean
并让构造函数返回 NULL
如果 实例化
为真。这行得通吗?
最佳答案
这就是为什么每个人都认为单例很烂。他们糟透了。这只是他们糟糕的一方面,这将拖垮你的整个应用程序。
为了解决您的问题:不要使用 Suckletons。
关于c++ - 内存管理的 C++ 单例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11236967/