博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一点总结
阅读量:6236 次
发布时间:2019-06-22

本文共 502 字,大约阅读时间需要 1 分钟。

情景:server人数2000左右,client在玩家打开某个界面的时候向服务器请求服务器的当前时间来同步客户端本地时间。

分析:按理讲服务器拿系统时间的这调用的开销是微不足道的,但是会出现服务器卡的情况。。。

原因就是虽然这个请求服务器时间的操作是不频繁的。。。但是考虑到每个服务器有2000人,若再同一时间有1%的人同时请求这个时间,就会有20个人同时请求。。。所以每时每刻都会有20个请求去向服务器请求当前的时间。。。这就造成了服务器会处理大量的消息和发送大量的消息。。。这个开销还是很大的。。

所以才会出现客户端玩家感到卡的情况。。。

解决办法:在玩家进入游戏世界的时候,每个玩家都向服务器请求一下服务器的当前时间,然后客户端自己在本地计时。(若某个应用是在玩家登陆后的一段时间之后需要根据服务器时间做出反应的。。。考虑到长时间计时会有误差。。。可以在此时再由这个玩家向服务器同步一下本机时间。。。但是这个应用不能是很多玩家参与,且不能频繁的请求服务器的时间)。

结论:所以服务器卡的现象不是由于取当前的服务器时间的这个函数造成的。。。。而是由于服务器每时每刻基本上都会处理几十个连接请求导致的。

转载地址:http://iizia.baihongyu.com/

你可能感兴趣的文章
iOS架构设计-URL缓存
查看>>
JSTL-XML标签库
查看>>
Effective C++ Item 28 避免返回对象内部数据的引用或指针
查看>>
Activity简单几步支持向右滑动返回
查看>>
Spring 通过Java代码装配bean
查看>>
图片的base64编码通过javascript生成图片--当前URL地址的二维码应用
查看>>
sass10 demo1
查看>>
Asp.net mvc自定义Filter简单使用
查看>>
[LeetCode][Java] Binary Tree Level Order Traversal
查看>>
机器学习模板
查看>>
java thread 线程40个问题汇总
查看>>
第二部分计算机系统基础[专业课考试2]
查看>>
如何选择开源许可证
查看>>
x264代码剖析(八):encode()函数之x264_encoder_close()函数
查看>>
下半部和推后运行的工作
查看>>
(转) RabbitMQ学习之延时队列
查看>>
A Taxonomy for Performance
查看>>
C#文件运行类的VB.NET版本号
查看>>
iOS 的单例模式 dispatch_once
查看>>
tomcat 配置https
查看>>