游戏服务器注意事项
2022-10-09 16:39:40 【

1:IO操作是最大的性能消耗点,注意优化余地很大。

2:算法数据结构。排序寻路算法的优化。list,vector,hashmap的选择。大数据寻址,不要考虑遍历,注意考虑hash.

3:内存管理。重载new/delete,内存池,对象池的处理。

4:数据的提前准备和即时计算。

5:CPU方面的统计监视。逻辑帧计数(应当50ms以内)。

6:预分配池减少切换和调度,预处理的线程池和连接池等。

7:基与消息队列的统计和信息监视框架。

8:CPU消耗排名:第一AOI同步,第二网络发包I/O操作,第三技能/BUFF判定计算处理,第四定时器的频率。

9:内存泄露检测,内存访问越界警惕,内存碎片的回收。

10:内存消耗排名:第一玩家对象包括其物品,第二网络数据缓冲。

11:注意32位和64位的内存容错。

12:减少不必要的分包发送。

13:减少重复包和重拷贝包的代价。

14:建议分紧急包(立刻发送)和非紧急包(定时轮训发送)。

15:带宽消耗排名:第一移动位置同步,第二对象加载,第三登陆突发包,第四状态机定时器消息。

16:客户端可做部分预判断机制,部分操作尽量分包发送。

17:大量玩家聚集时,部分非紧急包进行丢弃。

18:注意数据库单表内key数量。

19:活跃用户和非活跃用户的分割存取处理。

20:控制玩家操作对数据库的操作频率。

21:注意使用共享内存等方式对数据进行安全备份存储。

22:注意安全策略,对内网进行IP检查,对日志进行记录,任意两环点内均使用加密算法会更佳。

23:实时注意对网关,数据库等接口进行监察控制。

24:定时器应当存储一个队列,而非单向定位。

25:九宫格数据同步时,不需要直接进行九宫格的同步,对角色加一个AOI,基于圆方碰撞原理,抛弃不必要的格信息,可大幅节省。

26:客户端做部分的预测机制,服务器检测时注意时间戳问题。

27:定期心跳包,检查死链接是必要的。

28:为了实现更加负责多种类的AI,AI寻路独立服务器设计已经是必须的了。其次需要考虑的是聊天,同步。

29:服务器内网间可以考虑使用UDP。

30:注意所有内存池,对象池等的动态扩张分配



】【打印关闭】 【返回顶部
上一篇没有了 下一篇如何选择游戏服务器?