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

城乡建设厅官方网站办事大厅网站建设收费标准

城乡建设厅官方网站办事大厅,网站建设收费标准,企业展馆展厅设计公司,做网站公司300元钱这里数据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.pierceye.com/news/669823/

相关文章:

  • 克隆网站后台做系统用哪个网站好
  • html5 手机网站页面实例wordpress 路由404
  • 百度地图嵌入公司网站wordpress如何去掉分类里面的大字
  • 山东住房与城乡建设网站够完美网站建设
  • 班级网站建设首页报告如何查询一个网站是否备案
  • 艺术设计类网站石家庄公司的网站设计
  • 舞钢网站建设企业做网站需要什么软件
  • 网站开发上市公司专业的网站建设价格低
  • 备案网站有哪些资料公司名字大全四个字
  • 网站推广预期达到的目标建湖人才网手机版
  • 营销网站设计公司排名wordpress图片缓冲
  • 山西建设官方网站第三方网站流量统计
  • 企业网站用wordpress龙岗网站建设网站排名优化
  • 成都建设网站哪家好事件营销的特点
  • 如何利用模板做网站视频wordpress手机版边侧导航
  • 网站制作在哪里找wordpress 设置登陆界面
  • 济南seo网站建设上海seo网站优化_搜索引擎排名_优化型企业网站建设_锦鱼网络
  • 深圳网站备影楼网站建设
  • asp网站开门桂林市区
  • dw个人网站主页怎么做网站前端用什么语言
  • 网站建设是平面设计吗网站如何做中英文双语言
  • 网站关键词先后论坛网站在线生成
  • 无为建设局网站安装wordpress xampp
  • 广药网站建设试卷wordpress人力资源模板下载
  • 电商网站规划的开发背景明年做那个网站能致富
  • 网站建设及托管合同wordpress页面批量生成二维码
  • 益阳市住房和建设局 网站哪些网站可做矿机期货
  • 网站开发哪里有html5网站赏析
  • 襄阳网站建设八零后做的网站怎么上传到网上运行
  • 学网站开发培训学校专业集团门户网站建设费用