你的位置:首页 > ASP.net教程

[ASP.net教程]度量Web性能的关键指标


自网站诞生以来,响应速度/响应时间一直都是大家关心的话题,而速度慢乃是网站的一个杀手,正当大家以为四核和宽带能力的提升能够解决这些问题时,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文件等。

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

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