读书人

游戏开发中对象池的运用

发布时间: 2012-10-24 14:15:58 作者: rapoo

游戏开发中对象池的应用

文章属性:原创
文章提交: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,分代收集的效率已经很高了。

读书人网 >网络游戏

热点推荐