编程技巧学习笔记之对象池

在练习项目坦克大战中,运行发现比较卡,原来是处理子弹的时候动态new的。这样频繁地开辟、释放内存会降低运行效率。

听一位师兄说可以这样优化处理:

子弹分为三个状态:

出生时born,飞行时moved,销毁时destory,

born destory 状态 子弹保存在queue

moved 状态 子弹保存在list

预先new 出若干的子弹,保存到队列queue,

开火时从queue取出子弹,取出的子弹放到list,

销毁时再把子弹保存到queue,从list取出该子弹。

子弹在list 与queue之间来回存取,暂时不用delete

 

 

你可能感兴趣的:(内存,性能优化)