在练习项目坦克大战中,运行发现比较卡,原来是处理子弹的时候动态new的。这样频繁地开辟、释放内存会降低运行效率。
听一位师兄说可以这样优化处理:
子弹分为三个状态:
出生时born,飞行时moved,销毁时destory,
born destory 状态 子弹保存在queue
moved 状态 子弹保存在list
预先new 出若干的子弹,保存到队列queue,
开火时从queue取出子弹,取出的子弹放到list,
销毁时再把子弹保存到queue,从list取出该子弹。
子弹在list 与queue之间来回存取,暂时不用delete