游戏后台之内存管理篇




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


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


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


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


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

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值