游戏开发中对象池的应用
文章属性:原创
文章提交: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下载到,打完,收工,睡觉!
?
1 楼 dennis_zane 2008-11-28 重复的使用new 生成对象最终将导致内存枯竭这完全是臆测,短命的对象尽管new,分代收集的效率已经很高了。