自网站诞生以来,响应速度/响应时间一直都是大家关心的话题,而速度慢乃是网站的一个杀手,正当大家以为四核和宽带能力的提升能够解决这些问题时,Wi-Fi和移动设备为热点移动互联网又悄然兴起。

  在2006年,Amazon曾做过一个报道,响应时间每提高100ms,他们便会增加1%的收入。优化的价值已显而易见,但到底多快才是个标准,或者速度有多快才算够快呢?那么到底什么是响应时间,它有多大的价值?

  从技术上来讲,响应时间是指用户发送一个指令(例如,一个页面请求)浏览器接收到完成加载的时间。定义看起来非常简单,但当你在思考如何设计一个带有许多额外对象的现代网页时,响应时间对用户体验是非常重要的,并且它也不会告诉你,哪些因素影响着响应时间。

  一个稍微好点的衡量标准则是页面加载时间。页面加载时间是指从用户发送指令到浏览器加载完整个页面对象所用的时间。好比响应时间,页面加载整个过程涉及到很多事情,它由一系列执行步骤组成,并且每一步都需要单独监控,每一步都会告诉你问题所在。

  步骤包括:

  • DNS解析时间
  • TCP链接时间
  • HTTP重定向时间
  • 首字节加载时间
  • HTML内容时间
  • 整个页面对象加载时间

  DNS解析时间

  DNS查找的时间就是将域名翻译成具体IP的时间,大多人数认为,无论DNS是否工作,都不是件简单的事情。

  在这个过程中,你可能会遇到许多微妙的问题,比如响应时间太长、超时、无效的缓存等。这些情况下,一个查询便可通过,但它需要花费更多的时间。

 通常,如果DNS的查找时间过长,那么意味着你或托管服务商的DNS服务有问题。记住,如果网站与其DNS服务之间距离太远,那么解析时间也会稍微增加,这在一些国际网站上会体现出来,而有效的缓存则会降低时间。

  TCP链接时间

  当URL被解析成一个IP地址后,TCP链接时间表示客户端链接到服务端所花费的时间。监控链接时间有助于开发者发现一些影响响应时间的问题,比如网络延时、路由问题、服务器宽带问题等。

  例如,如果宽带服务器不足以处理工作负载,那么客户端要先与服务器端意识到这个问题,当客户端向服务器端发送请求时,可能会被拒绝或者时间超时、响应时间延迟等问题。

  HTTP重定向时间

  HTTP重定向时间主要是指TCP链接完成时间,它意味着发送初始通知到重定向网站并且浏览器最终定向到目标网站所花费的时间。如果没有重定向,那么重定向时间就为0。它包括了DNS解析时间、TCP链接等等。

  HTTP重定向可用于缩短URL、当网页链接移动时,可用于防止链接损坏,或允许多个域名链接到一个网站上。

  首字节加载时间

  当开发人员思考如何优化网站时,往往会选择优化内容——文件组合、多媒体优化、缓存和压缩文件,但也有需要对服务器进行优化。其中一个最佳指标就是首字节的加载时间,首字节加载时间表示从链接创建到首字节成功转换所花费的时间。这个时间也包括了服务器执行各种协议和计算的时间。

  通常服务器端遇到与首字节相关的问题包括内存泄露、程序派生的进程太多——没有完全关闭——低效SQL查询,并且调用外部资源,例如谷歌和Facebook。

  HTML内容时间

  HTML内容时间主要包括加载Web页面布局、CSS、JavaScript,这个时间与HTML页面的大小有着直接的关系。HTML内容加载时间通常会作为衡量宽带的一个指标,但也不完全是。

  整个页面对象加载时间

  一旦整个HTML内容被整个接收,浏览器会解析所有的页面对象,并且直到所有对象加载完毕。这些对象包括图片、JavaScript、CSS、Flas对象、RSS回馈、JavaScript文件等。

  衡量全页加载时间对监控第三方内容非常有用,特别是广告,但它并不会告诉你有哪些用户看了这个广告。例如,它不会告诉你第三方内容放在哪加载速度会快些。但站在用户角度来看,这些并不算问题。

  作者对网站的响应时间和页面加载时间进行了详细的划分与解释,相信你对这些指标都有了更深地理解,开发者可以根据这些指标来确定网站的问题所在(如果这方面存在问题)。

  来自:SMARTBEAR

  本文链接:http://www.cnblogs.com/oooweb/p/web-performance-index.html

你知道吗?衡量 Web 性能的几个关键指标的更多相关文章

  1. 从网络通信角度谈web性能优化

    衡量一个网站的性能有多个指标,DNS解析时间,TCP链接时间,HTTP重定向时间,等待服务器响应时间等等,从用户角度来看,就可以归结为该网站访问速度的快慢.也就是说性能等于网站的访问速度. 早些年Am ...

  2. 【Web性能进阶】1.无线网络基础

    一.无所不在的连接 针对不通的使用场景,无线网络技术有很多种. 鉴于无线网络技术如此多样,笼统地概括所有无线网络的性能优化手段是不可能的.好在大多数无线技术的原理都是相通的,衡量性能的指标和约束条件也 ...

  3. Web 性能优化: 使用 Webpack 分离数据的正确方法

    摘要: Webpack骚操作. 原文:Web 性能优化: 使用 Webpack 分离数据的正确方法 作者:前端小智 Fundebug经授权转载,版权归原作者所有. 制定向用户提供文件的最佳方式可能是一 ...

  4. Sentry Web 性能监控 - Metrics

    系列 1 分钟快速使用 Docker 上手最新版 Sentry-CLI - 创建版本 快速使用 Docker 上手 Sentry-CLI - 30 秒上手 Source Maps Sentry For ...

  5. Web性能优化:What? Why? How?

    为什么要提升web性能? Web性能黄金准则:只有10%~20%的最终用户响应时间花在了下载html文档上,其余的80%~90%时间花在了下载页面组件上. web性能对于用户体验有及其重要的影响,根据 ...

  6. 关于WEB 性能优化 (摘抄)

    压缩源代码和图片 JavaScript文件源代码可以采用混淆压缩的方式,CSS文件源代码进行普通压缩,JPG图片可以根据具体质量来压缩为50%到70%,PNG可以使用一些开源压缩软件来压缩,比如24色 ...

  7. Web性能--TCP的构成

    前言:阅读<Web性能权威指南>摘录笔记.在这本书开篇就读到第一句话令人印象深刻: "合格的开发者知道怎么做,而优秀的开发者知道为什么那么做". 内容大纲: 1.因特网 ...

  8. Web性能优化-合并js与css,减少请求

    Web性能优化已经是老生常谈的话题了, 不过笔者也一直没放在心上,主要的原因还是项目的用户量以及页面中的js,css文件就那几个,感觉没什么优化的.人总要进步的嘛,最近在被angularjs吸引着,也 ...

  9. web性能优化——浏览器相关

    简介 优化是一个持续的过程.所以尽可能的不要有人为的参与.所以能自动化的或者能从架构.框架级别解决的就最更高级别解决. 这样即能实现面对开发人员是透明的.不响应,又能确保所有资源都是被优化过的. 场景 ...

随机推荐

  1. eclipse建包的一些细节

    com.a :com.b 等会先在com文件夹下在 建立 a,b两个子文件夹,引用路径时 不可"*\\com.a\\*"而是"*\\com\\a\\*"这点基础 ...

  2. Android 8悬浮窗适配

    背景 APP推出时,提示是退出还是更改账号,这个提示框是系统级别的.然而我的Android 9 会崩溃,宁外一个小伙伴Android 7运行理想.报错提示permission denied for w ...

  3. VC的常用调试方法

    前言 VS是非常强大的IDE,所以掌握VSVC的常用方法,将会使得我们找出问题解决问题事半功倍. 目录 VSVC的常用调试方法 前言 1. Watch窗口查看伪变量 2. 查看指针指向的一序列值 3. ...

  4. laravel5.6 调用第三方类库

    大概流程: 1. 新建一个目录方类库 2. 配置composer配置文件 3. 在项目中使用终端运行composer  dumpautoload 4. 使用时 方法调用可以new对象后->方法名 ...

  5. LeetCode 696. Count Binary Substrings

    Give a string s, count the number of non-empty (contiguous) substrings that have the same number of ...

  6. Codeforces Round#514 Div.2 翻车记

    A:签到 #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> # ...

  7. 【bzoj3567】江南乐

    Portal -->bzoj3567 Solution ​  今天开始啃博弈论了qwq ​  先mark一篇很棒的博客Portal -->博弈论学习资料 ​​  稍微总结一下两个自己容易混 ...

  8. 【bzoj1502】月下柠檬树

    Portal -->bzoj1502 Solution 额其实说实在这题我一开始卡在了..这个阴影长啥样上QwQ 首先因为是平行光线然后投影到了一个水平面上所以这个投影一定是..若干个圆再加上这 ...

  9. redis搭建集群并用TreeSoft管理

    前言:redis作为一款高效的NOSQL数据库已经深入贯彻和落实到我们的日常开发代码中,作为缓存.时间控制.数据仓库.队列等使用方法层出不穷,简直是开写代码.居家旅行之必备良药.曾经,我们的项目都是单 ...

  10. Java之面向对象编程20170619

    /*************************************************************************************************** ...