【发布时间】:2014-10-15 21:37:34
【问题描述】:
我正在使用 C++ 制作游戏,并且正在考虑是否使用多态性。 我知道在大多数情况下使用多态会更好,但问题是我在游戏中制作了一些粒子效果,并且一秒钟内会弹出数百个。如果我在这种情况下使用多态,我会频繁分配和释放内存,这肯定会减慢游戏速度。
那么,即使必须频繁地新建/删除对象,我是否应该使用多态性?
顺便说一句,如果我的语法坏了,请纠正我。我还在学习英语。
【问题讨论】:
-
你为什么说“如果我使用多态......我会经常分配和释放内存”。多态性意味着你有一个类的层次结构,其中一些虚拟被覆盖。你必须做的新和删除的数量并不取决于你的设计有多态。所以,首先要做的事情是:你的粒子是否都基本相同,或者它们是否具有类型层次结构?如果是后者,是否存在所有粒子都以不同方式执行的功能?
-
粒子效果通常使用某种对象池来减少分配。此外,您不必对所有内容都使用多态性。
-
我没有表达清楚。我认为我的问题实际上是关于新/删除的性能。通常这不是问题,但在游戏中,一秒钟内会创建数百或数千个。因此,如果经常新建/删除对性能很重要,我宁愿使用粒子池。如果没有,那么我想我会使用多态性。
-
我很好奇。可以使用指针吗?他们会更快吗?
标签: c++ performance polymorphism