对象池解决的问题

对象池是游戏编程中非常常用的优化策略以及设计模式。虽然非常简单,但是太常用了,所以我觉得有必要写一篇文章来巩固自己这方面的知识点,也又必要写一个对象池来作为自己放在自己的工具集中。
用途

游戏中,我们常常会遇到频繁得创建和销毁大量相同对象的场景。如果我们不做任何的特殊处理,这种场景会出现两个性能问题——大量的内存碎片以及频繁的分配内存空间而对象池能供完美得解决这两个问题。
原理

当创建对象时,对象池将对象放入池管理的某种内存连续的数据结构中(数组或者栈等)。当不需要对象时,对象池并不销毁对象,而是将对象回收到池中,下次需要的时候再次从池中拿出来。
因为,对象储存在内存连续的数据结构中,所以解决了内存碎片的问题。
因为,对象每次用完以后就放回池中循环利用而不是再次创建和销毁,这样就解决了频繁的内存分配和销毁的问题。

猜你喜欢

转载自blog.csdn.net/Allure_Lo/article/details/119893372