当前位置: 首页 > news >正文

乌苏市电力建设工程公司网站Python视频直播网站开发

乌苏市电力建设工程公司网站,Python视频直播网站开发,连云港关键词优化排名,产品网站建设框架这里数据IO是指游戏数据存盘和读取。假设IO处理不好。server在IO时会导致。游戏卡顿较长的时间#xff0c;严重影响游戏体验。近期服务端刚好对IO这一块做了优化#xff0c;把优化过程记录一下。一 原始版 刚開始立项的时候#xff0c;仅仅是做了一个Demo#xff0c;加上也…这里数据IO是指游戏数据存盘和读取。 假设IO处理不好。server在IO时会导致。游戏卡顿较长的时间严重影响游戏体验。 近期服务端刚好对IO这一块做了优化把优化过程记录一下。一 原始版 刚開始立项的时候仅仅是做了一个Demo加上也刚開始做服务端仅仅是做了一个仅仅可以測试用的server。 当时是在每一个场景对象area中加入了一个users对象通过uid来保存每一个玩家的数据。 当玩家登录的时候将玩家的数据读入。退出的时候将玩家的数据写回。var users {};function onLogin(uid){var user DBMgr.read(uid);users[uid] user; }function onLogout(uid){var user users[uid];DBMgr.write(user);delete users[uid]; }为了防止server宕机数据丢失再添加了一个定时存盘。function onTick(){for (var uid in users) {var user users[uid];DBMgr.write(user);} }这样做有两个非常明显的问题 1 假设一个玩家下线之后马上又一次登录就会又一次IO的过程 2 每次都须要将所有玩家的数据写入。玩家多了之后会卡非常长时间。二 进阶版 为了解决如上问题添加了一个cache。 玩家离线后。先将其数据移到cache中每隔一段时间将cache中的玩家写入存储介质中。 登录的时候先在cache中查找玩家的数据假设找不到。再去读数据。 然后结构就变成了这样var users {}; var cache {};function onLogin(uid){if (!!cache[uid]) {users[uid] cache[uid];delete cache[uid];} else {users[uid] DBMgr.read(uid);} }function onLogout(uid){var user users[uid];cache[uid] user;delete users[uid]; }function onTick(){for (var uid in cache) {var user cache[uid];DBMgr.write(user);delete cache[uid];} } 然而前面两个问题并没有彻底地解决掉。 1 假设玩家下线之后。刚好onTick时间到这样数据就被写回了下次登录就得又一次读一次 2 若是在onTick这个周期内下线的玩家太多。onTick之中还是会有非常多玩具须要写入。三 终极版 为了优化前面的两点不再玩家的数据移到cache而是在cache中保存玩家的下次存盘时间。 每次登录直接在users中找数据假设找不到就读数据库。 假设玩家下线。就将其下次存盘时间在变为对应的负数来标记玩家已经下线。 在onTick中先将到存盘时间的玩家存盘然后已下线的玩家从users和cache中同一时候移除。var users {}; var cache {};function onLogin(uid){var user users[uid];if (!user) {user DBMgr.read(uid);users[uid] user;cache[uid] curTime WRITE_GAP;// WRITE_GAP为存盘间隔时间} }function onLogout(uid){cache[uid] 0 - (curTime WRITE_GAP); }function onTick() {for (var uid in cache) {var time cache[uid];if (curTime Math.abs(time)) {continue;}DBMgr.write(users[uid]);if (time 0) { // 离线玩家delete users[uid];delete cache[uid];} else { // 在线玩家cache[uid] curTime WRITE_GAP;}} };这种结构定时存盘一批玩家数据即使玩家离线也能够在内存中保存一段时间。 眼下我们的服务端存盘机制就是这种假设以后有优化再补充。 转载于:https://www.cnblogs.com/wzjhoutai/p/6940512.html
http://www.zqtcl.cn/news/202844/

相关文章:

  • 无限空间 网站四川省建设厅网站填报获奖
  • 广东佛山最新通知北京seo怎么优化
  • 浙江省通信管理局 网站备案 管理部门科技公司经营范围包括哪些
  • 网站域名备案转接入手续深圳外贸公司qc招聘
  • 湖北网站建设服务公司可以做产品推广的网站
  • 做经营性的网站备案条件wordpress删除菜单
  • js商城网站个安装wordpress
  • 想给学校社团做网站企业服务平台是做什么的
  • 网站推广渠道的类型wordpress看不到表格
  • 网站建设与推广实训报告册附近广告设计与制作门店电话
  • wordpress汉语公益网站开发使用api对seo
  • 北京网站优化前景seo网络推广专员
  • 临海网站制作工程施工合同免费版
  • 免费的黄冈网站有哪些平台wordpress 新闻发布
  • 给男票做网站表白的软件wordpress软件网站模板下载
  • 网站备案个人可以做吗dw制作一个手机网站模板
  • 如何识别一个网站是否做的好坏新河官网
  • 深圳网站建设 卓教育直播网站开发
  • 如何修改网站后台密码河南省罗山县做网站的公司
  • 个人网站免费源码大全湖南长沙新增病例最新消息
  • 途牛网站开发需求邯郸市中小学健康管理平台登录
  • 青岛商城网站开发年度关键词有哪些
  • 电商网站开发文献综述网站文案优化
  • 兼职工厂网站建设万维网的代表网站
  • 企业要建设一个网站需要多少钱网站制作的关键技术
  • 大连住房和城乡建设网站工程公司取名字大全
  • 自建网站投放广告网页设计色彩搭配
  • 网站建站公司哪家价钱合理seo优化是什么职位
  • 德州建设网站网络营销推广方式
  • 网站建设经费预算策划书河南省城乡建设厅网站