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. jzyzOJ 1658【bzoj1798改编】

    #include<iostream> #include<cstring> #include<cstdio> #include<ctime> #inclu ...

  2. codevs 1450 xth 的旅行

     时间限制: 1 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond 题解  查看运行结果     题目描述 Description 毕业了,Xth很高兴,因为他要和他的 ra ...

  3. node.js博客GitHub搭建(hexo)

    教程参考官网提供的: https://hexo.io/zh-cn/ 教程: https://hexo.io/zh-cn/docs/ 我的node.js环境: hexo博客全程采用markdown进行编 ...

  4. dedecms跳转标签

    我们在使用织梦dedecms制作网站的时候,有时会遇到利用arclist和list标签调用redirecturl属性.但是,dedecms的arclist和list标签不支持redirecturl.很 ...

  5. 12.【nuxt起步】-接口请求重构

    用store把api数据交互部分重构出来,让前端更轻一点 新建 /store/gettter.js /store/actions.js /server/config/index.js Index.js ...

  6. ylb:了解存储过程

    ylbtech-SQL Server:SQL Server-了解存储过程 了解存储过程 ylb:了解存储过程 返回顶部 存储过程 2.2.1 主要的编程结构: 变量 数据类型 输入/输出变量 返回值 ...

  7. 2016.6.21 eclipse配置server locations时按钮为灰色

    我在使用eclipse配置Tomcat服务器的时候发现,默认情况下Tocmat把我们部署的项目放在了workspaces下面,需要手动修改将其放在tomcat的安装路径下的webapp内. 从图中可以 ...

  8. AAuto无法关闭CMD窗口怎么办

    如下图所示,当执行了io.print函数之后,打开的CMD窗口无法使用关闭按钮关闭,其实只要点击左上角的控制台,把钩去掉,该窗口即可关闭.

  9. VueJS组件之全局组件与局部组件

    全局组件 所有实例都能用全局组件. HTML <!DOCTYPE html> <html> <head> <meta charset="utf-8& ...

  10. python实现区块链代码

    如果你明白了原理其实挺简单的. 加密算法是python自带的 需要导入hashlib import hashlib as hash sha = hasher.sha256() sha.update(' ...