功能大家都能实现,服务器性能优化可以提供用户体验,公司上个游戏是用C++写的pc端游,玩家多时服务器可能出现内存溢出的情况,现在做手游吸取经验做了不少优化
玩家数据基本在player用户表,其余帮派、宠物、物品、活动管理,服务器配置等表
服务器优化主要是内存优化,提高内存使用效率,不仅只是游戏,web项目优化没做好,有时页面交互卡个几秒,优化用户体验是很重要的
这个大家都知道,内存中有数据读取内存,内存中没数据读数据库
GePlayer(id)--获取内存中players是否存在,没有返回空
GoGePlayer(id)--获取内存中players是否存在,没有则查找数据库返回对象
玩家登录时,GoGePlayer实体对象加入players(table结构),也可以统计当前在线人数
以前项目的入库方法DBQueue,所有继承实体对象都是updateQueue即可,数据库不存在则插入
现在项目对象修改完全都不需要数据库操作,缓存数据列表例如players定时自动入库,插入要手动操作,具体以后填坑
内存数据分为用户数据和服务器数据
当用户触发登出事件,数据直接入库保存,然后从内存中删除
内存中存在数据即服务器数据和当前在线用户数据,服务器数据例如排行榜,只会由在线玩家操作触发变更,推送等也是给在线玩家,离线用户在登入时更新
方法很多,用户上次在线时间可以触发每日,每周等重置事件,活动,任务updataTime可以根据服务器当前活动判定,小于活动时间开始时间则重置
客户端能处理的可以交由客户端,服务器的数据处理是每个用户都要判定,而客户端数据在本地,只用单个用户判定,减轻服务器压力
这是我最近项目优化的处理方法,大家有什么好想法可以一起分享
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。