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. SecureCRT鼠标快速复制粘贴

  2. Java中的JAR/EAR/WAR包的文件夹结构说明(转)

    JAR包:打成JAR包的代码,一般作为工具类,在项目中,会应用到N多JAR工具包. WAR包:JAVA WEB工程,都是打成WAR包,进行发布,如果我们的服务器选择TOMCAT等轻量级服务器,一般就打 ...

  3. webservice测试窗体只能用于来自本地计算机的请求

    写在前面 在编写好webservice后,发布到iis服务器,你会发现会有这样的异常“测试窗体只能用于来自本地计算机的请求”. 解决方案 在web.config中添加以下代码即可解决问题 <we ...

  4. UICollectionView专题

    什么是UICollectionView UICollectionView是一种新的数据展示方式,简单来说可以把他理解成多列的UITableView(请一定注意这是UICollectionView的最最 ...

  5. vue2.0中怎么获取元素

    在元素上添加 v-el:food-wrapper (不用驼峰的写法) vue1版本 报错: vue2版本 (vue2把vue1中的 v-el 改为了 ref vue1 v-el:foods-wrapp ...

  6. Node.js学习入门手册

    Node.js 安装 1.下载http://nodejs.org/dist/v0.12.1/node-v0.12.1-x86.msi并完成安装 2.下载https://www.python.org/f ...

  7. 【AngularJS】【02】AngularJS应用骨架

    ※文件引自OneDrive,有些人可能看不到

  8. vue修改数组元素方法

    示例代码 <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF- ...

  9. ZF-net

    ZF-net 摘要: 1.这篇文章的motivation 是 :CNN性能良好,可是我们不知道它为何性能良好.也不知道它怎么能够被提高? 2.本文介绍了一种新方法实现中间层和分类器的可视化 3.採用消 ...

  10. 【Python】从文件中读取数据

    从文件中读取数据 1.1 读取整个文件 要读取文件,需要一个包含几行文本的文件(文件PI_DESC.txt与file_reader.py在同一目录下) PI_DESC.txt 3.1415926535 ...