上facebook的神奇怎么减少网络延迟迟【...

作者:王选易,出处: 欢迎转载,也请保留这段声明。如果你喜欢这篇文章,请点推荐。谢谢!
最近谈了许多Unity相关的东西,这篇博文就将一些更加宽泛的东西,算是这段时间里游戏开发的一些经验的总结吧。
说起游戏的优化,在游戏开发中经常分为这几步:
首先要确定游戏中经常会出现哪些问题 - Profile
然后确定在哪些方向进行性能优化 - Analyze
最后再尽可能将问题逐个解决 - Solve
游戏开发中一定是先做工具,进行Profile,再进行优化,所以,说优化就不得不再扯一下Profile
常见的工具有一些是引擎和IDE自带的,比如Unity自带的Profiler,就包含了CPU,GPU,Memory等等各式各样的性能分析工具,其他的比如GPA,Xcode Instrument和Visual Studio,Intel自带的内存管理工具在必要的时候也使需要去学习和使用的。
另外一些工具,就需要根据游戏的需求去编写了,比如一键关闭所有特效,一键更改分辨率等等,一键设置场上NPC数量,简单的游戏如啪啪三国是做成快捷键开启Profile功能的,更为复杂的游戏如神秘海域则是通过游戏内控制台来进行更为细致的Profie。
接着,我们再来说说游戏优化中主要的四个考虑方向:
引发的问题:
由于短时间内的计算量太大,导致画面流畅性降低,俗称跳帧
发热严重,耗电量高
常见的优化手段:
将计算分到多个逻辑帧中进行计算,避免短时间内的性能超过负荷,俗称“分帧”(time-slice)。
将可以缓存的数据尽可能的缓存起来,避免重复计算和重复分配内存,常见的示例为“内存池”。
使用合理的算法和数据结构,比如:冒泡排序和直接插入排序在整体数组比较有序的情况下效率大大好于快速排序。把快排替换成是优化程序排序效率的一个常见的思路。
引发的问题:
发热严重,耗电量高
常见的优化手段:
优化美术资源,比如合理规划图集,约定好模型的最大三角形面数,制定合理的粒子效果规范。这个可以说是游戏优化中最重要的一个,因此,技术美术在游戏开发中作用巨大。
简化或者优化着色器(shader),如在游戏开始前就对Shader进行编译和加载。
使用Batching,尽量减少DrawCall
使用平台推荐的压缩格式,比如安卓平台的ETC1和IOS平台的PVRTC
引发的问题:
网络延迟甚至掉线
加载资源导致的跳帧
加载时间过长
常见的优化手段:
使用独立的线程进行加载,有些引擎如Unity中还能利用协程
减少网络包里面的冗余数据
合并小包,减少请求数据的次数
分帧对回包进行处理
限制一定时间内的发包频率
引发的问题:
闪退和卡死,比如安卓的Low Memory Killer会在低内存情况下杀掉内存占用过大的程序。
常见的优化手段
动态加载和卸载资源,比如在游戏内的时候,我们可以把游戏外的一些UI图集卸载掉。
降低资源质量或屏幕分辨率,这是有损优化,一般作为最后的手段
对做过项目的一些思考
需要关注非功能性需求
这一点思考是我从这个***中想到的,正如这位答主所说:
事实上,从我的经验来看,一般来说,很多软件项目及产品,其在非功能性需求上的成本,难度和工作量,是要超过功能性需求的。在特定的软件领域,例如网站(尤其是淘宝,facebook这样海量用户规模的网站),金融(银行证券),电信领域,其非功能性需求实现的重要性,工作量,技术难度要远远远远大于功能性需求的实现。而且,功能性的需求的实现,其实在大多数情况下,更依赖于业务的高手(或者好的产品经理)而不是技术的高手,而非功能性需求的实现,恰恰是挑战技术高手的重要课题。
在游戏前端这边做了一段时间,大家都在抱怨游戏前端技术含量低,只能写业务逻辑,但是其中的陷阱就是,作为前端,你应当尽量少写业务逻辑,你关注过一下的模块吗?
性能:你有没有在自己的游戏中进行Profile,观察在以上各个参数有没有达到指标
安全:你的游戏前端代码的Release版本是否还能被别人轻易反编译,你的游戏是否还能轻易被玩家截取网络包或修改内存数据
可测试性:你的前端代码能不能进行单元测试,能不能在QA测试之前就把Model层的所有bug解决掉
数据驱动:你能不能做出更优秀的工具来给美术和策划使用,解放他们的生产力?
需要善于划定范围,缩小问题区间
我在过去几个月里,参加了全民突击和崩坏学园2两个Unity3D项目的开发,也遇到了一些性能优化相关的问题,在程序出现问题时,很多时候我们会通过所谓的“经验”去解决问题,这种Quick Link的能力自然是非常重要,但经验并非万能。
但是从另一方面来讲,当我们无法从自己过往的经验中找到***的时候,我们就要通过划分范围,缩小问题区间来解决问题了,许多人往往只是在自己的经验中死守一个局部的视野去处理问题,最后的结果就一定不能尽如人意。
其实这四个方面的优化总是相互制衡的,你把一个方面的优化做好了,另一个方面的问题又会出现了,比如,我们如果使用动态加载和卸载资源,这就虽然减少了内存占用量,会在IO上造成加载时间延长的问题。
所以,我们在做游戏优化的时候,不能太追求完美,刚刚好就是真的好(Good Enough Is Fine)。最终使得以上这四个方面能达到均衡即可,切忌在某一方面优化过头,又引发其他方面的问题,此消彼长的情况下,有时反而不如不做优化。
阅读(...) 评论()比特客户端
您的位置:
详解大数据
详解大数据
详解大数据
详解大数据
Facebook:没有秘密ASIC命令的网络设备
关键字:SDN
  运营官对于SDN(网络)有很大的期待,这就如同增加一个打印共享的命令,尽管没有办法期待硬件厂商为大型的网络提供商业化的SDN产品。
  “SDN是未来的趋势方向,这并不是一种时尚。这就是络的构建方式。” Facebook技术Najam Ahmad说。Ahmad负责Facebook产品和网络,在加盟Facebook之前,他曾经在担任全球网络服务总经理。
  在今年纽约举行的Interop会议上,SDN是反复讨论的内容,不知道这是否只是一种流行语,还是未来的发展趋势。
  对于Ahmad来说,SDN解决了非常重要的问题:它使得Facebook的罗更加灵活。“我们希望用软件对网络进行部署、管理和监控。”他说。
  他表示:今天的、和其他网络设备无法让Facebook更加有效使用网络和。公司希望尽可能减少网络延迟,尽可能为全球数以亿计的用户保持相应。
  诚然,Facebook不是按照典型的网络管理中心(NOC)的方式来管理自己的网络,也就是通过监控屏幕警报,然后来解决出现的问题。相反,公司努力通过最大程度提升网络性能,他们编写脚本对问题进行预判和管理。
  Facebook被其网络设备限制住了。“传统网络设备,你买了一个盒子以及一个命令和协议的接口,这就是全部所能够得到的。” Ahmad说。
  Ahmad对此感到沮丧,例如,你可以发现,一些网络设备只能由供应商直接拨号连接,并通过秘密命令到ASIC(专用集成电路 )来解决问题,而这些命令没有通过CLI(命令行接口界面)提供给用户。
  “我们不想这样来管理网络环境,我们希望直接写硬件。” Ahmad说。
  今天你唯一可以做的事情就是说服供应商或者上诉标准化组织做出改变,作为一家大公司,Facebook确实可以影响到硬件厂商增加或改变一些功能,但这个过程非常繁琐和缓慢。
  “你和他们一起工作半年,获得了一些改进和升级,但测试以及一些其他事情则是一年后的事情了,” Ahmad说,“对于我们这样的公司规模,这限制了我们构建和管理事务的能力。”
  “SDN让网络设备问题释然。”Ahmad说。类似于大型主机向PC的演变方式,如今,PC是硬件、和应用程序等标准化元件的集合,可以根据需要对其进行编程或者开发组件。
  “我们需要同样架构的网络设备。” Ahmad说。
[ 责任编辑:宋家雨 ]
去年,手机江湖里的竞争格局还是…
甲骨文的云战略已经完成第一阶段…
软件信息化周刊
比特软件信息化周刊提供以数据库、操作系统和管理软件为重点的全面软件信息化产业热点、应用方案推荐、实用技巧分享等。以最新的软件资讯,最新的软件技巧,最新的软件与服务业内动态来为IT用户找到软捷径。
商务办公周刊
比特商务周刊是一个及行业资讯、深度分析、企业导购等为一体的综合性周刊。其中,与中国计量科学研究院合力打造的比特实验室可以为商业用户提供最权威的采购指南。是企业用户不可缺少的智选周刊!
比特网络周刊向企业网管员以及网络技术和产品使用者提供关于网络产业动态、技术热点、组网、建网、网络管理、网络运维等最新技术和实用技巧,帮助网管答疑解惑,成为网管好帮手。
服务器周刊
比特服务器周刊作为比特网的重点频道之一,主要关注x86服务器,RISC架构服务器以及高性能计算机行业的产品及发展动态。通过最独到的编辑观点和业界动态分析,让您第一时间了解服务器行业的趋势。
比特存储周刊长期以来,为读者提供企业存储领域高质量的原创内容,及时、全面的资讯、技术、方案以及案例文章,力求成为业界领先的存储媒体。比特存储周刊始终致力于用户的企业信息化建设、存储业务、数据保护与容灾构建以及数据管理部署等方面服务。
比特安全周刊通过专业的信息安全内容建设,为企业级用户打造最具商业价值的信息沟通平台,并为安全厂商提供多层面、多维度的媒体宣传手段。与其他同类网站信息安全内容相比,比特安全周刊运作模式更加独立,对信息安全界的动态新闻更新更快。
新闻中心热点推荐
新闻中心以独特视角精选一周内最具影响力的行业重大事件或圈内精彩故事,为企业级用户打造重点突出,可读性强,商业价值高的信息共享平台;同时为互联网、IT业界及通信厂商提供一条精准快捷,渗透力强,覆盖面广的媒体传播途径。
云计算周刊
比特云计算周刊关注云计算产业热点技术应用与趋势发展,全方位报道云计算领域最新动态。为用户与企业架设起沟通交流平台。包括IaaS、PaaS、SaaS各种不同的服务类型以及相关的安全与管理内容介绍。
CIO俱乐部周刊
比特CIO俱乐部周刊以大量高端CIO沙龙或专题研讨会以及对明星CIO的深入采访为依托,汇聚中国500强CIO的集体智慧。旨为中国杰出的CIO提供一个良好的互融互通 、促进交流的平台,并持续提供丰富的资讯和服务,探讨信息化建设,推动中国信息化发展引领CIO未来职业发展。
IT专家新闻邮件长期以来,以定向、分众、整合的商业模式,为企业IT专业人士以及IT系统采购决策者提供高质量的原创内容,包括IT新闻、评论、专家答疑、技巧和白皮书。此外,IT专家网还为读者提供包括咨询、社区、论坛、线下会议、读者沙龙等多种服务。
X周刊是一份IT人的技术娱乐周刊,给用户实时传递I最新T资讯、IT段子、技术技巧、畅销书籍,同时用户还能参与我们推荐的互动游戏,给广大的IT技术人士忙碌工作之余带来轻松休闲一刻。
微信扫一扫
关注Chinabyte

参考资料

 

随机推荐