现在的位置: 首页 > 综合 > 正文

游戏后台之内存管理篇

2013年10月05日 ⁄ 综合 ⁄ 共 567字 ⁄ 字号 评论关闭

服务端程序对于内存的管理上是重中之中,如何管理好程序的内存是保证程序稳定的最重要因素。

因此,我们是如何做的呢。

1.我们知道,当有一个新玩家进入游戏,我们需要分配一段内存给这个玩家,当这个玩家下线了,不玩了,我们就要对这段内存
进行清理。因此,如何有效的管理这段内存,如何能重新利用这段内存,是我们的问题,因此,使用内存池的方式,是比较理想的
一种方式。
通过内存池,我们可以预分配一大块数据使用,下线的玩家之后,那段内存是可以重新使用的。
目前游戏中,使用到内存池有玩家,
2.固定不变的数据。游戏里有配置表数据,这些数据是玩家在游戏过程中,需要使用的数据,比如任务表,装备表的数据等等,这些数据是固定不变的,
因此我们就放在一个固定的数组里,一张二维表数据,相对于数组而言就是二维数组,因此,定义响应表的二维数组。当系统系统启动的时候,加载进去,并排好序,
3.为了快速查找的数据,我们使用hash内存,查找速度几乎是常数。

为了我们的程序具有coredump的时候,玩家的数据不会丢失,因此,我们的方案使用了共享内存的方式,即使程序coredump了,我们整个游戏的数据和core之前的数据保持一致。

经过以上描述,我们的服务端,使用了主要技术为1,共享内存,内存池,hash内存,二分查找算法等,
经过实践,我们的游戏是非常稳定,不会丢失数据等状况

抱歉!评论已关闭.