在游戏后台中,内存的数据查找是一个很重要,也是关系到我们游戏的后台效率的问题。

在大量的数据中,我们如何让我们的的程序能够快速的查找到我们所想要的数据呢。那么我们就要使用相应的算法了。

首先,我们所有使用的内存都是通过分配内存的方式,基本上都是共享内存。通过shmid来分配内存。

那么游戏中有哪些数据呢。

1.配置表数据,这个数据是程序启动的时候,就要加载到内存中,我们就使用了二分法,将这些数据放到相应的二维数组中,这些内存都是使用二分法进行有序排列。

在查找的时候,其效率是logN,也就是基本符合了我们的要求。

2.运行时数据,这个就要使用了各种方法来加速我们的快速查找了。当一个心的用户登录到我们的服务器,我们会现在内存池中进行内存的分配工作,然后记录玩家内存池的索引,和内存ID

然后,我们在讲根据内存的数组索引,进行对玩家的名字还有内存id等进行hash存储。因此,当我们要查找一个玩家的时候,我们先通过其hash查找,然后得到其内存池索引,直接通过

数组下标,取得玩家的数据,效率非常的高效。

3.地图数据。地图数据分配在内存池等等,我们还是用了nginx页内存的分配策略。加速了内存的的使用。

因此,根据不同的情况,达到我们高效率的内存数据查找,是至关重要的。

如何提高游戏后台数据查找效率相关推荐

  1. 游戏后台数据存储解决方案

    多人在线游戏是一种强数据.强逻辑的系统,这种系统存在大量的有状态数据需要同步存储.对于多人在线游戏这类复杂的系统,我们面对的是: (1)业务逻辑系统的演化过程会转化并最终体现为系统数据的变化,同时系统 ...

  2. 如何改善mysql数据装载操作效率的方法_详述如何提高MySQL中数据装载效率

    摘抄自:http://database.ctocio.com.cn/153/9232653.shtml 很多时候关心的是优化SELECT 查询,因为它们是最常用的查询,而且确定怎样优化它们并不总是直截 ...

  3. 如何 提高企业网站大数据量 效率

    摘  要:目前企业信息化正在如火如荼地开展之中,企业信息量在急剧膨胀.这使得信息的搜索工作变得极为繁重起来.据调查统计,人们在平时的工作中,有70%的时间都花费在信息搜索上.由此,如何提高人们搜索信息 ...

  4. 基于springboot项目中使用docker-compose+es+kibana+logstash+mysql 提高数据查询效率

    基于springboot项目中使用docker-compose+es+kibana+logstash+mysql 提高数据查询效率 1.拉取logstash,kibana,es,mysql镜像 #命令 ...

  5. 报告指出数据中心效率有所提高

    美国政府日前表示,美国的数据中心大大提高了他们的能源效率,而在云计算和在线服务的爆炸性的增长期间,工业用电量只有小幅增加.研究人员表示,该行业的减少使用能源行为也称为"negawatts&q ...

  6. 游戏后台杂谈:后台的语言、系统与构架

    前言 撸主踩坑游戏后台N年,受摧残无数,在饱受蹂躏的过程中,因为工作关系,有幸见识过不少项目的架构和实现方式:也因为熟识的兄弟各奔西东自立山头,领教了一些小公司的后台生存之道.些许感悟,抛砖引玉,望高 ...

  7. 游戏后台生成唯一ID

    游戏后台生成唯一ID   MMO游戏后台通常需要由大量服务器来共同承载海量玩家,虽然玩家可能分布在不同的游戏大区,但是他们可能会通过跨服等等方式进行各种交互.游戏中的角色,装备,物品等需要生成一个全局 ...

  8. “提高一下dotnet程序的效率一”中关于exception的问题

    看了提高一下dotnet程序的效率一中关于exception的部分和相关的评论,我觉得有些知识点可能大家平时没有注意到或没有深入的了解: Exception在没有产生exception的时候,换句话说 ...

  9. 如何在mysql查找效率慢的SQL语句

    如何在mysql查找效率慢的SQL语句呢?这可能是困然很多人的一个问题,MySQL通过慢查询日志定位那些执行效率较低的SQL 语句,用--log-slow-queries[=file_name]选项启 ...

最新文章

  1. 领英Linkedin信息搜集工具InSpy
  2. Selenium常用方法及函数、txt参数化
  3. js获取页面的各种高度与宽度
  4. 支撑阻力指标_使用k表示聚类以创建支撑和阻力
  5. pycharmlinux报错java,Linux安装PyCharm时提示cannot start PyCharm错误怎么办?
  6. meta你到底了解多少
  7. java改变实参_java中引用传递问题,在函数中修改引用的指向,会不会影响实参?...
  8. 你们听过最感人的故事是什么?
  9. 测试监视器锁的等待/通知机制
  10. 我是如何从零基础自学到找到工作经过
  11. AutoResetEvent和ManualResetEvent的区别
  12. 为什么要学统计学:赤裸裸的统计学
  13. 【图像超分辨率】Deep Learning for Image Super-resolution: A Survey
  14. linux之网络基础
  15. Vue中 $event not defined
  16. java多态性_深入理解java多态性
  17. Poland seeks to calm row with Germany over WWII war repa industrielle Kommunikation rations
  18. 博弈论——序论(读书笔记)
  19. C:1123zuijia校友
  20. 2022年上海临港新片区科技小巨人(含培育)专项申报工作的通知

热门文章

  1. 2022浙江省计算机三级网络及安全技术考试自学资料(3)(更新于3.9)
  2. 零知识证明(zero knowledge validation)
  3. linux查看磁带机端口,linux、unix下使用磁带机的常用命令
  4. 软考程序员c语言、Java和c++考点
  5. 生命在于折腾——Win+UOS+黑苹果三系统折腾日记
  6. Unity3D开发之折线图制作
  7. * web H5 网页 浏览器 蓝牙 Bluetooth
  8. Node js 开发之Postman
  9. web开发灵感推荐--34个有吸引力的电影网站设计灵感
  10. 安装PyCharm(最完整版)