文章属性:原创
文章提交:www.iteye.com
游戏开发中对象池的应用
autor: Cn-kavin
e-mail:122251238@163.com
date: 2008-11-27
一直都没有写blog的习惯,这算是我工作后的处女作,文笔不好还请见谅。
对象池的基本原理:
对象池的基本原理的核心有两点:使用和缓存,即对于那些被频繁使用的对象,在使用完后,不立即将它们释放,而是将它们缓存起来,以供后续的应用程序重复使用,从而减少创建对象和释放对象的次数,进而改善应用程序的性能。
为了服务器能7x24稳定的运转,内存管理是关键,对于一个拥有复杂的业务与逻辑的游戏服务器来说,往往会设计非常多的对象池,因为重复的使用new 生成对象最终将导致内存枯竭。
要实现一个对象池,一般会涉及到以下的几个类:
① 对象池工厂(SomeObjectFactory)类
该类主要用来生成实例或销毁实例。
② 目标对象(SomeObject)类
该类就是程序中频繁使用的对象。
③ 对象池(ObjectPool)类
该类主要用于管理对象的借出和归还,并通知对象池工厂完成相应的工作。它至少包含两个方法:
borrowObject():用于从池中借出对象;
returnObject():将对象归还到池中;
实现对象池技术很简单,有空大家可以自己设计一个。
开源的对象池可以在www.apache.org下载到,打完,收工,睡觉!