Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >提升服务器性能,内存大幅度优化!!

提升服务器性能,内存大幅度优化!!

原创
作者头像
深雾
修改于 2020-07-06 02:35:03
修改于 2020-07-06 02:35:03
7.4K0
举报
文章被收录于专栏:工具类工具类

前言

功能大家都能实现,服务器性能优化可以提供用户体验,公司上个游戏是用C++写的pc端游,玩家多时服务器可能出现内存溢出的情况,现在做手游吸取经验做了不少优化

数据结构

玩家数据基本在player用户表,其余帮派、宠物、物品、活动管理,服务器配置等表

优化内存数据

服务器优化主要是内存优化,提高内存使用效率,不仅只是游戏,web项目优化没做好,有时页面交互卡个几秒,优化用户体验是很重要的

优先读内存

这个大家都知道,内存中有数据读取内存,内存中没数据读数据库

代码语言:lua
AI代码解释
复制
GePlayer(id)--获取内存中players是否存在,没有返回空
GoGePlayer(id)--获取内存中players是否存在,没有则查找数据库返回对象

减少数据库交互

玩家登录时,GoGePlayer实体对象加入players(table结构),也可以统计当前在线人数

缓存队列自动入库

以前项目的入库方法DBQueue,所有继承实体对象都是updateQueue即可,数据库不存在则插入

现在项目对象修改完全都不需要数据库操作,缓存数据列表例如players定时自动入库,插入要手动操作,具体以后填坑

提高内存使用效率

内存数据分为用户数据和服务器数据

用户登出数据清理

当用户触发登出事件,数据直接入库保存,然后从内存中删除

尽量只操作在线用户

内存中存在数据即服务器数据和当前在线用户数据,服务器数据例如排行榜,只会由在线玩家操作触发变更,推送等也是给在线玩家,离线用户在登入时更新

用户登录更新

方法很多,用户上次在线时间可以触发每日,每周等重置事件,活动,任务updataTime可以根据服务器当前活动判定,小于活动时间开始时间则重置

客户端本地处理

客户端能处理的可以交由客户端,服务器的数据处理是每个用户都要判定,而客户端数据在本地,只用单个用户判定,减轻服务器压力

这是我最近项目优化的处理方法,大家有什么好想法可以一起分享

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
h2engine游戏服务器设计之聊天室示例
h2engine引擎建群以后,有热心网友向我反馈,想尝试h2engine但是没有服务器开发经验觉得无从入手,希望我能提供一个简单明了的示例。由于前一段时间工作实在忙碌,一直没有抽出时间好好写一下,后来抽空写了出来,自己从小白开发者的角度重新审视了一遍h2engine,自己也收获匪浅,也优化了部分h2engine的架构,使其更易使用。以前的例子都是c++加脚本的例子,这次写一个纯c++的例子。
知然
2018/08/01
7320
Java在游戏服务器开发中应用【面试+提高】
Java在游戏服务器开发中的应用 随着游戏市场的兴起,特别是网页游戏、手机游戏的崛起,对游戏开发技术的需求越来越多。网络游戏开发是一个庞大的体系,总体来说是客户端与服务器端。客户端是玩家接触的游戏图像显示端,服务器是处理游戏运行中的各种数据,由于一台服务器要支持众多玩家的请求,所以服务器的性能高低决定了同一个游戏的用户数量。 我们公司选择使用Java做服务器开发语言,主要原因是:1.Java是跨平台的,方便部署;2.Java是安全的高级语言,可以提高开发效率;3.Java是面向对象的,代码可以重用;4.Ja
Java帮帮
2018/03/12
2.1K0
Java在游戏服务器开发中应用【面试+提高】
《英雄联盟》支撑最高750万同时在线用户的聊天服务打造
【编者按】在2013年初马化腾被问及“过去两年腾讯在海外投资中最成功的案例是什么”时,他毫无疑问的回答:“投资美国的Riot Games,做出《英雄联盟》。”在那个时候,《英雄联盟》这款游戏仅上市3年
CSDN技术头条
2018/02/08
1.7K0
《英雄联盟》支撑最高750万同时在线用户的聊天服务打造
《天天爱消除》服务器性能优化
《天天爱消除》服务器已经在外网稳定运行四年多了,日积月累服务器方面出现了一些问题。主要包括内存,强校验性能,异步开发效率,登录等问题。本文记录这些问题的解决方案和优化效果。
范蠡
2018/12/17
1K0
Minecraft配置文件参数说明(JAVA服务器篇)
JAVA版Minecraft服务器启动后会生成配置文件server.properties,该文件位于minecraft_server/ 根目录下。
云惑雨问
2025/03/25
3420
Minecraft配置文件参数说明(JAVA服务器篇)
五分钟快速部署幻兽帕鲁服务器
此次使用jammsen/docker-palworld-dedicated-server: Docker container to easily provision and manage Palworld Dedicated Server (github.com)镜像进行部署,首选我们需要连接到服务器并上传yml模板,
SakuraRain
2024/01/28
1.1K0
五分钟快速部署幻兽帕鲁服务器
1 游戏服务器开发的基本体系与服务器端开发的一些建议
近年来,我身边的朋友有很多都从web转向了游戏开发。他们以前都没有做过游戏服务器开发,更谈不上什么经验,而从网上找的例子或游戏方面的知识,又是那么的少,那么的零散。当他们进入游戏公司时,显得一脸茫然。如果是大公司还好点,起码有人带带,能学点经验,但是有些人是直接进入了小公司,甚至这些小公司只有他一个后台。他们一肩扛起了公司的游戏后端的研发,也扛起了公司的成败。他们也非常尽力,他们也想把游戏的后端做好。可是就是因为没什么经验,刚开始时以为做游戏服务器和做web差不多,但是经过一段时间之后,才发现代码太多,太乱了,一看代码都想重构,都是踩着坑往前走。
范蠡
2018/07/25
5.4K0
1 游戏服务器开发的基本体系与服务器端开发的一些建议
优化C#服务器的思路和工具的使用
优化服务器之前, 需要先对问题的规模做合理的预估, 然后对关键的数据做采样, 做对比, 看和自己的预估是否一致, 误差大在什么地方, 是预估的不对, 还是系统实现有问题.
郑子铭
2023/10/28
2730
优化C#服务器的思路和工具的使用
32. 网站性能介绍
网站性能对于普通用户来说,最直接的体现就是响应时间。用户在浏览器上直观感受到的网站响应速度,即从客户端发送请求,到服务器返回响应内容的时间。
Devops海洋的渔夫
2022/01/17
4800
32. 网站性能介绍
论可复用的游戏服务器端开发框架(二)
RPG系统的可复用模型 RPG系统主要负责提供游戏中提供“积累、成长”的快感,也是驱动玩家反复进行游戏操作的重要系统。RPG系统能提供这种作用的最基本逻辑,是以玩家为中心,为其赋予了一系列的可成长的数
韩伟
2018/03/05
2.7K0
论可复用的游戏服务器端开发框架(二)
HTTP/3 性能又大幅度提升!!
在去年 Cloudflare 生日周,我们宣布了初步支持 HTTP/2 的下一代新协议– HTTP/3 。我们的目标是为建立一个更好的互联网而努力。在标准制定上进行协作非常重要,我们很荣幸可以参与到制定标准的工作中来。
架构师修行之路
2020/05/18
1.8K0
HTTP/3 性能又大幅度提升!!
Now 直播应用的后台服务器性能测试实践
WeTest质量开放平台团队
2016/11/01
5.5K5
Now 直播应用的后台服务器性能测试实践
服务器直接输入字符串代码执行方法测试
我们在写代码的过程中时常要调试,但线上的服务器打包部署运行很费时,或者需要在线上查看数据,可以直接在服务器上输入需要执行的代码
深雾
2020/07/07
5380
服务器直接输入字符串代码执行方法测试
IM服务器的架构
一、 总的构架结构示意图: 如上图所示,目前系统总的分成六个模块,分别为网络/协议解析模块,用户帐号管理模块,消息处理模块,动作处理模块,数据均衡处理模块,客户状态处理模块 。 正常流程应该这么实现,以一个或者几个线程运行网络/协议解析模块,然后他根据具体的包类型分发给具体的命令处理模块,每个具体的命令处理模块 至少应该分别运行于不同的线程。 从上面的结构图可以看出,其中客户状态模块和网络/协议解析模块都是公用模块,其他的模块几乎都依赖于这两个模块。目前因为很多功能不予以实现,例如不实现离线消息,所以只有用
李海彬
2018/03/22
2.4K0
一个人的服务器端
能够做这个MMO的触发点是通过某些途径得到了某个大公司使用的一款3D引擎,其他的都是白手起家。当时大家还不知道有“分布式服务器端”一说,服务器端框架参考了《剑3》:剑3内测的时候经常服务器crash,但是每次只crash一个地图,所以可以推知他们是一个地图一个server;加上自己对服务器端的认识,需要Gate当防火墙,需要GameServer来总管MapServer,需要DB来存储,那么最初的服务器端框架就定下来了:Gate、GameServer、MapServer、DBServer。想让服务器之间的连接方式最简化,所以确定GameServer是中心,其他Server都连接并且只连接GameServer。MapServer和GameServer上面准备加脚本,脚本直接选择了python,因为python语法清晰一点。开发平台选择windows,因为当时公司内没有一个人了解linux。
海哥@开发
2022/04/06
5980
瞬时响应:网站的高性能架构一、网站性能测试二、Web前端性能优化三、应用服务器性能优化四、存储性能优化
一、网站性能测试 (1)性能测试指标:①响应时间;②并发数;③吞吐量;④性能计数器; (2)性能测试方法:①性能测试;②负载测试;③压力测试;④稳定性测试; (3)性能优化策略:   ①性能分析:检查请求处理各个环节的日志,分析哪个环节响应时间不合理,检查监控数据分析影响性能的因素; ②性能优化:Web前端优化,应用服务器优化,存储服务器优化; 二、Web前端性能优化 (1)浏览器访问优化: ①减少http请求:因为http是无状态的,每次请求的开销都比较昂贵(需要建立通信链路、进行数据传输,而服务器
JavaEdge
2018/05/16
2.4K0
ColyseusJS 轻量级多人游戏服务器开发框架 - 中文手册(下)
快速上手多人游戏服务器开发。后续会基于 Google Agones,更新相关 K8S 运维、大规模快速扩展专用游戏服务器的文章。拥抱☁️原生? Cloud-Native! 系列 ColyseusJS
为少
2021/05/27
2.7K0
【性能测试】性能需求挖掘、性能方案制定及压测场景设计之疑惑与思考(一)
模拟用户在同一时间对服务器发送大量请求,以此查看服务器性能指标,尤其关注大业务量情况下运行系统性能的变化(反应变慢、是否会内存泄漏导致系统逐渐崩溃、是否能恢复),测试系统的限制和故障恢复能力,找系统瓶颈
王大力测试进阶之路
2019/10/25
3.6K1
超全性能调优标准制定指南,你一定不能错过!
我有个朋友说他们国企的系统从未性能调优,功能测试完就上线,线上也没性能问题,何必还做性能调优?
JavaEdge
2025/01/01
1510
手游页游和端游的服务端的架构与区别
类型1:卡牌、跑酷等弱交互服务端 卡牌跑酷类因为交互弱,玩家和玩家之间不需要实时面对面PK,打一下对方的离线数据,计算下排行榜,买卖下道具即可,所以实现往往使用简单的 HTTP服务器:   登录时可
李海彬
2018/03/22
3.3K0
手游页游和端游的服务端的架构与区别
推荐阅读
相关推荐
h2engine游戏服务器设计之聊天室示例
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档