1. 减小图片大小(使用WebP格式的图片) 

    大部分的Facebook应用数据都是图片,因此降低图片的大小就能够较少数据的下载量。从而加快下载速度,这一点在高延迟的网络环境下很重要。Facebook返回给client的图片都做了压缩处理,图片压缩方面业内主要使用gzip压缩。常见的server都支持gzip压缩。另外,Facebook大规模使用了WebP格式的图片,WebP是谷歌推出的一种新的图片格式。能够将图片大小降低40%,眼下淘宝也有使用这样的格式的图片。WebP不仅能够大幅度降低图片大小。并且还支持透明度和动画。

    对于一些不支持WebP的设备。Facebook会在client把它转码为JPEG格式的图片。 



    前不久。Facebook也赞助了来自Mozilla实验室的JPEG图像编码器项目mozjpeg,mozjpeg能够在不减少图像质量且兼容主流的解码器的情况下。提供产品级的JPEG格式编码器来提高压缩率以减小JPEG文件的大小。

    感兴趣的读者能够尝试使用。

  2. 网络质量检測 

    Facebook在每一个响应的的HTTP头中都提供了RTT(Round Trip Time)估算。client依据平均吞吐量和RTT时间来确定网络连接的质量。网络连接质量会大致被评为几个级别:优秀、良好、一般、差。开发者针对不同的网络连接级别来调整对应的功能,比方添加/降低压缩调整并行的请求数量、禁止/同意自己主动播放视频、预载入内容。另外,Facebook还专门开发了Air Traffic Control以支持不同网络环境下的配置文件模拟。

  3. 预载入内容 

    预载入能够使用空暇时间来预先下载/载入用户接下来非常可能会浏览的资源。在高延迟的网络环境下。内容预载入能够降低用户的等待时间。比方在网络连接不好的情况下,Facebook会在应用启动时载入基础数据。使用预载入内容方案时要注意不要让后台网络请求堵塞正常的网络请求,这块Facebook主要使用了一个优先队列来存储请求。

client网络优化方法的更多相关文章

  1. 移动端IM开发者必读(二):史上最全移动弱网络优化方法总结

    1.前言 本文接上篇<移动端IM开发者必读(一):通俗易懂,理解移动网络的“弱”和“慢”>,关于移动网络的主要特性,在上篇中已进行过详细地阐述,本文将针对上篇中提到的特性,结合我们的实践经 ...

  2. PostgreSQL服务端监听设置及client连接方法

    背景介绍: PostgreSQL服务端执行在RedHat Linux上,IP为:192.168.230.128 client安装在Windows XP上, IP为:192.168.230.1 配置方法 ...

  3. 神经网络优化方法总结:SGD,Momentum,AdaGrad,RMSProp,Adam

    1. SGD Batch Gradient Descent 在每一轮的训练过程中,Batch Gradient Descent算法用整个训练集的数据计算cost fuction的梯度,并用该梯度对模型 ...

  4. SQL Server Native Client 安装方法

    在 server 2008 r2 里面搜索到:  sqlncli.msi  安装即可

  5. Mysql8 连接提示 Client does not support authentication protocol requested by server; consider upgrading MySQL client 解决方法

    USE mysql;ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';FLUSH PR ...

  6. Vmware ESXi 6.0 多Vlan部署,vSphere Client管理方法

    背景: 公司IT部门新购了两台服务器与一台存储,打算做虚拟化,并将存储分成两个部分,分别配给那两台服务器.在宿主机上要安装的虚拟机属于不同的网段,这就涉及了多VLAN,当然这并不是多么高深的技术,属于 ...

  7. Task6.PyTorch理解更多神经网络优化方法

    1.了解不同优化器 2.书写优化器代码3.Momentum4.二维优化,随机梯度下降法进行优化实现5.Ada自适应梯度调节法6.RMSProp7.Adam8.PyTorch种优化器选择 梯度下降法: ...

  8. (OPC Client .NET 开发类库)网上很多网友都有提过,.NET开发OPC Client不外乎下面三种方法

    1. 背景 OPC Data Access 规范是基于COM/DCOM定义的,因此大多数的OPC DA Server和client都是基于C++开发的,因为C++对COM/DCOM有最好的支持.现在, ...

  9. go http.Get请求 http.Post请求 http.PostForm请求 Client 超时设置

    http中有Get/Post/PostForm方法 也可以通过http包中设置client 请求配置 ,然后通过client.Do方法实现请求 下demo中功能都实现,其中有详细说明: package ...

随机推荐

  1. Scut游戏服务器引擎5.6.3.5发布

    版本:5.6.3.5 (2013-11-25) 1. 优化实体ChangeKey队列,减少写库IO(默认为5分钟写入一次数据库) 2. 优化Protobuf序列化启用自动GZip压缩,减少Redis内 ...

  2. VS2010中打开VS2012项目的方法

    VS2012中对C#的支持度非常好,不管是编写方便程度(不需要插件就能高亮代码及代码自动提示功能),还对MFC的一些功能优化很多. 修改两个工程文件就把VS2012的项目移植到VS2010中去的方法如 ...

  3. 记录MySQL运行的SQL

    对照Oracle功能去学习Mysql总会发现亮点 Oracle中通过日志挖掘这一技能,能够找到以前运行过的全部记录: Mysql中也提供了3种方法{验证过的,我会记录详细做法} 方法1:{已验证} 记 ...

  4. Web安全系列(二):XSS 攻击进阶(初探 XSS Payload)

    什么是 XSS Payload 上一章我谈到了 XSS 攻击的几种分类以及形成的攻击的原理,并举了一些浅显的例子,接下来,我就阐述什么叫做 XSS Payload 以及从攻击者的角度来初探 XSS 攻 ...

  5. sprint3 【每日scrum】 TD助手站立会议第四天

    站立会议 组员 昨天 今天 困难 签到 刘铸辉 (组长) 和楠哥学习了通过AlarmManager 来实现闹钟,由于要用到BroadcastReceiver广播协议,所以正在学习中,暂时只是按照教程写 ...

  6. java拷贝构造函数

    浅拷贝就是指两个对象共同拥有同一个值,一个对象改变了该值,也会影响到另一个对象. 深拷贝就是两个对象的值相等,但是互相独立. 构造函数的参数是该类的一个实例.   Operator = 拷贝构造函数 ...

  7. 研发团队如何借助Gitlab来做代码review

    代码review是代码质量保障的手段之一,同时开发成员之间代码review也是一种技术交流的方式,虽然会占用一些时间,但对团队而言,总体是个利大于弊的事情.如何借助现有工具在团队内部形成代码revie ...

  8. Chrome自带恐龙小游戏的源码研究(五)

    在上一篇<Chrome自带恐龙小游戏的源码研究(四)>中实现了障碍物的绘制及移动,从这一篇开始主要研究恐龙的绘制及一系列键盘动作的实现. 会眨眼睛的恐龙 在游戏开始前的待机界面,如果仔细观 ...

  9. 查看mysql 的存储过程定义

    查询数据库中的存储过程 方法一: select `name` from mysql.proc where db = 'your_db_name' and `type` = 'PROCEDURE' 方法 ...

  10. log4j:WARN Please initialize the log4j system properly.

    在tomcat启动的时候,出现这个警告: log4j:WARN No appenders could be found for logger (org.apache.commons.digester. ...