游戏后台之内存管理篇
来源:互联网 发布:java图片转base64编码 编辑:程序博客网 时间:2024/06/01 08:11
服务端程序对于内存的管理上是重中之中,如何管理好程序的内存是保证程序稳定的最重要因素。
因此,我们是如何做的呢。
1.我们知道,当有一个新玩家进入游戏,我们需要分配一段内存给这个玩家,当这个玩家下线了,不玩了,我们就要对这段内存
进行清理。因此,如何有效的管理这段内存,如何能重新利用这段内存,是我们的问题,因此,使用内存池的方式,是比较理想的
一种方式。
通过内存池,我们可以预分配一大块数据使用,下线的玩家之后,那段内存是可以重新使用的。
目前游戏中,使用到内存池有玩家,
2.固定不变的数据。游戏里有配置表数据,这些数据是玩家在游戏过程中,需要使用的数据,比如任务表,装备表的数据等等,这些数据是固定不变的,
因此我们就放在一个固定的数组里,一张二维表数据,相对于数组而言就是二维数组,因此,定义响应表的二维数组。当系统系统启动的时候,加载进去,并排好序,
3.为了快速查找的数据,我们使用hash内存,查找速度几乎是常数。
为了我们的程序具有coredump的时候,玩家的数据不会丢失,因此,我们的方案使用了共享内存的方式,即使程序coredump了,我们整个游戏的数据和core之前的数据保持一致。
经过以上描述,我们的服务端,使用了主要技术为1,共享内存,内存池,hash内存,二分查找算法等,
经过实践,我们的游戏是非常稳定,不会丢失数据等状况
- 游戏后台之内存管理篇
- 游戏客户端之内存管理(cocos2d-x 引用计数)
- Memcached源码分析之内存管理篇
- Memcached源码分析之内存管理篇
- Memcached源码分析之内存管理篇
- 操作系统之内存管理
- Android之内存管理
- OC之内存管理
- cocos2dx 之内存管理
- c++之内存管理
- OC之内存管理
- jvm之内存管理
- 操作系统之内存管理
- 简单之内存管理
- OC之内存管理
- cocos2dx 之内存管理
- Android之内存管理
- OC之内存管理
- 算法——素数判定方法
- Aspose Word模版使用总结篇(2)
- 一、Linux内核分析
- 嵌入式学习-嵌入式的组成特点,开发流程等
- hdu 1712 DP
- 游戏后台之内存管理篇
- 邮箱格式验证
- 可爱的玩笑
- 树蛙和摄影师
- ORACLE PL/SQL编程之八:把触发器说透
- Poj 2533-Longest Ordered Subsequence(最长有序子序列)
- 函数
- axis WebServices 完美调用天气预报,查询、显示 代码!
- 接收字段的成员属性与接收数组参数的成员方法的进行反射