- 浏览: 479791 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
alvin198761:
renzhengzhi 写道我参与过12306余票查询系统的开 ...
别给12306 辩解了 -
renzhengzhi:
我参与过12306余票查询系统的开发,用户请求被前面3层缓存拦 ...
别给12306 辩解了 -
renzhengzhi:
写的很好。
JAVA线程dump的分析 -
liyonghui160com:
说好的附件呢
分布式服务框架 Zookeeper -- 管理分布式环境中的数据 -
ghpaas:
orbeon作为xforms标准的实现,不论其设计器还是运行时 ...
XForms 1.1 中文翻译—第1章 关于XForms标准
选自dW 正如在本系列文章 第 1 部分 中描述的那样,终端用户响应时间就是指从这个用户触发一个页面请求到这个页面被完全展示的时间,有时也被称为浏览器响应时间。终端用户响应时间是终端用户对一个应用性能的直观感受。它由三部分组成: 用一个公式来表示,那就是 : 终端用户响应时间= 页面下载时间+ 服务器响应时间+ 浏览器处理及渲染时间 页面请求与下载时间就是被忽略的第二个盲点。即缺少复杂网络条件下,网络传输对响应时间的影响。真实用户很可能会从各种各样不同网络环境(比如网吧)访问一个互联网应用,而基于现实的原因,性能测量软件往往是在实验室中访问实验室中的互联网应用。 在现实的生产环境中,有各种各样的网络环境。性能工程需要尽可能的模拟现实的生产环境,但也要在可接受的成本下进行,覆盖所有网络环境的测量方法不是现实可行的。然而如果能够对页面下载的时间、Web 2.0 应用的网络传输行为、以及网络参数的关系建模,那么就有可能通过实验室的性能数据来预测在真实网路环境的响应时间。 页面下载时间的模型涉及三方面: 在这些关系中页面大小和带宽的关系是最简单明了的,网络带宽决定了网路内每秒钟能传输的数据量的大小。同样大小的文件,在低带宽网络环境下的传输时间将大于高带宽的网络环境。所以: 例如:在 512Kbps 的 ADSL 线路上下载 1Mbyte 的页面, 消耗在带宽上的时间 = 1Mbyte / 512Kbps = 1024 * 1024 * 8 bit / 512 * 1024 bps = 16 秒。 注:这里的页面尺寸比页面文件的总和要略大,这是因为整个 HTTP 协议栈(HTTP、TCP、IP)有报头数据。 HTTP 请求数和网路延迟的关系就不是这么明了的了。我们先举个例子:有一家在上海的公司要从北京运 100 个标准集装箱货柜,那需要多少时间把所有的货柜运会到上海呢? HTTP 请求数和网路延迟的关系和上述例子是一样的: 互联网应用和上述例子的不同之处在于, 在例子中,是确定知道有 100 个货柜要运。所以两部车可以充分并发使用。而在互联网应用中,在一开始是不知道到底有几个货柜要运,这个信息是在运输过程中逐步清楚的。一个更准确的例子是: 互联网应用的并发度和 HTTP 连接数的关系是和这个例子是类似的: 从以上分析可知, 网络延迟、HTTP 请求数、并发度和消耗的总延迟时间的关系是: 而页面下载时间的简化模型就是 : 在这个简化模型中,有些因子没有被考虑 : 基于这个模型,我们只要测量出页面的尺寸、HTTP 请求数和并发度就可以推测在不同网络条件下的页面下载时间。 如前所述: 互联网应用网络传输行为主要包含一下几方面: 可以想象,如果我们能够监听网络传输就可以得知页面尺寸和 HTTP 请求数,而并发度则要通过一些分析也可以得到。而且事实上我们也可以通过互联网应用网络传输行为,分析出服务器响应时间和浏览器渲染时间。而 : 所以如果我们可以通过监听互联网应用的网络传输行为得到页面尺寸、HTTP 请求数、并发度、服务器响应时间和浏览器处理及渲染时间,那么我们就可以推测这个应用在任意网络环境下的终端用户响应时间。 网络监听工具有很多,比如 WireShark 。但 WireShark 比较底层,它可以捕捉整个协议栈的信息。但它的用户界面不是很友好,不利于本文的解释与描述。所以本文以 IBM PageDetailer Pro 为工具,以 Lotus Mashups 的首页为例来说明如何测量互联网应用网络传输行为以及如何理解。 Page Detailer Pro 是 IBM alphaworks 提供的一个工具。它是一款用来记录浏览器 HTTP 请求的软件,它通过在客户端的 Windows 端口堆栈中插入探针(Probe)来获取记录浏览器发起的 HTTP 请求的各种类型的数据。 对于 Page Detailer 的具体使用,可以查看参考资源。 下面是我们的测量步骤 : 将得到的记录保存作为下一步分析使用。 图 1 是一个 Page Detailer 记录的截图。浅蓝色标注部分是后加的,由上图示可知: 那么并发度怎么计算?一个简化的方法就是: 简化的前提是: 当然,在这里只是介绍了一下计算并发度的原理。基于这个原理,可以编写相应的程序读取 PageDetailer 或其他网络监听程序 (比如 WireShark) 的数据来自动计算并发度。在 Lotus Mashups 的性能工程中,我们应用了一个小工具来自动化地计算并发度、浏览器渲染时间和服务器响应时间。具体的开发细节以及在这个例子中的数值就不再一一赘述了。 接下来,我们可以通过简单的数学计算来推测在不同网络条件下的终端用户响应时间。如图 2: 由前面分析可知,可以通过以下几个方面来降低页面下载时间: 本文中,我们介绍了影响终端用户响应时间的其中一个主要因素是”页面请求与下载时间“,并且阐述了页面下载时间的构成,以及页面下载时间的在不同网络环境下的响应时间计算模型。通过对 IBM Mashups Center 首页的页面下载分析与模型计算,我们得到了其在不同网络环境下的计算值。最后我们讨论了如何能降低页面下载时间。通过对页面下载时间的分析与模型解析,从而提早发现应用在不同网络环境下可能存在的性能问题。
消耗在带宽上的时间 = 页面大小 / 网络带宽
总延迟时间 = 网络延迟 × HTTP 请求数 / 并发度
页面下载时间 = 在带宽上消耗的时间 + 在网络延迟上消耗的时间 = 页面尺寸 / 网络带宽 + (网络延迟 × HTTP 请求数)/ 并发度
终端用户响应时间= 页面下载时间+ 服务器响应时间+ 浏览器处理及渲染时间
终端用户响应时间 = 页面下载时间 + 服务器响应时间 + 浏览器处理及渲染时间 = 页面尺寸 / 网络带宽 + (网络延迟 × HTTP 请求数)/ 并发度 + 服务器响应时间 + 浏览器处理及渲染时间
图 1. 示例:Page Detailer Pro 的记录
并发度 = 单个资源下载时间之和 / (页面下载时间 – 浏览器渲染时间)
图 2. 不同网络条件下的 Mashups 初始页面的终端用户响应时间
发表评论
-
高性能、高流量Java Web站点打造的最佳实践
2013-12-24 11:23 2808从2005年-2013年,Ashwanth Fernando ... -
高性能、高流量Java Web站点打造的最佳实践
2013-12-24 11:01 4从2005年-2013年,Ashwanth ... -
20行实现javascript模板引擎
2013-12-23 10:35 150520行实现javascript模板引擎 我仍然在用Abs ... -
标题怎么办
2012-03-25 23:50 21.首先在这里 下载Selenium RC,解压到C盘。 ... -
Google Page Speed应用上线,移动设备也在支持之列
2011-04-05 21:23 852Google已经将Page Speed应用到线上,并且加强 ... -
浏览器的加载与页面性能优化
2011-02-16 11:23 1307本文将探讨浏览器渲染的loading过程,主要有2 ... -
门户网站负载均衡技术的六大新挑战
2010-12-23 11:25 976文 / 李晓栋 记得上 ... -
使用 JAWS 测试 Web 应用的技巧
2010-10-31 23:34 1630屏幕阅读器简介 屏幕阅读器(S ... -
How We Evaluate the Experiences We Engineer
2010-10-26 14:38 7129 and how we measured (and co ... -
研究显示:众多网上零售商未遵循Web优化基本准则
2010-10-26 10:25 691Web优化专家Joshua Bixby最近在博客中披露,在 ... -
Testing sites with Browser Mode vs. Doc Mode
2010-10-22 10:07 1064With site developers verifying ... -
Common Security Mistakes in Web Applications
2010-10-22 10:02 1690Web application developers toda ... -
A (somewhat) brief history of the performance landscape
2010-10-21 10:44 1706I’d like to enlist your help. ... -
Best Practices for Speeding Up Your Web Site
2010-10-20 10:40 1198Minimize HTTP Requests tag: ... -
Web Performance Optimization Use Cases – Part 1 Benchmarking
2010-10-19 14:40 933Web Performance Optimizatio ... -
Google WebP——让图片更小,让页面访问速度更快
2010-10-12 13:14 1583Google日前对外宣布了一种新的图片压缩格式WebP,可 ... -
剖析IE浏览器子系统的性能权重
2010-09-02 13:23 869最近,InfoQ中文站报道了Web 2.0应用客户端性能问 ... -
Performance: Profiling how different web sites use browser subsystems
2010-09-02 00:41 1204When we first showed IE9 at t ... -
Measuring Browser Performance: Understanding issues in benchmarking and performa
2010-09-02 00:40 942Measuring Browse ... -
Ajax应用开发:实践者指南
2010-08-10 21:13 954目前的Web应用开发基本上都是围绕富互联网应用(Rich ...
相关推荐
在Web 2.0应用程序中,用户体验至关重要,而页面加载速度是决定用户体验好坏的关键因素之一。本文关注的是页面渲染性能,尤其是JavaScript脚本的执行时间和浏览器引擎的渲染时间。在用户与网页交互时,浏览器响应...
5. **富互联网应用(RIA)**:提供接近桌面应用程序的用户体验,使用AJAX、Flash等技术实现。 6. **开放API**:允许开发者利用现有的数据和服务构建新的应用,促进创新和集成。 7. **聚合技术**:RSS和Atom等协议...
Java Web 2.0开发是基于Java技术栈构建动态、交互式Web应用程序的过程。随着互联网技术的不断发展,Web 2.0概念应运而生,它强调用户参与、互动交流和社区分享,与早期静态的Web 1.0网页相比,具有更高的交互性和...
C#是Microsoft公司推出的面向对象的编程语言,它在.NET框架下运行,为开发高性能、安全的Web应用程序提供了强大的支持。.NET框架提供了丰富的类库和工具,如ASP.NET,用于构建动态网页和Web应用。 在本书中,你将...
它不仅保证了稳定性和兼容性,还具备良好的性能表现,使得易语言的用户能够方便地在应用程序中嵌入网页浏览功能。Miniblink内核的采用,意味着开发者可以利用这一支持库轻松实现各种基于网页的交互应用,如在线文档...
《Pragmatic Ajax A Web2.0 Primer》是一本深入探讨Web 2.0核心...通过阅读《Pragmatic Ajax A Web2.0 Primer》,开发者可以全面了解Ajax技术,掌握如何在不同的开发环境中运用Ajax,提升Web应用的交互性和用户体验。
1. **Ajax (Asynchronous JavaScript and XML)**:这是一种用于创建快速响应的 Web 应用程序的技术,它使得 Web 页面可以实现局部刷新,提高用户体验。 2. **RESTful 架构**:代表“Representational State Transfer...
通过实际项目,如社交网络应用、内容管理系统、在线协作工具等,展示了如何使用PHP构建Web2.0应用程序。这些实例不仅涵盖了数据库设计、用户认证、权限管理等常见问题,还涉及到了数据安全、性能优化等高级话题,有...
通过深入学习和实践这些优化技巧,开发者能够构建出运行更流畅、响应更快的ASP.NET 2.0应用程序。提供的PDF文件"20070412pm--深入挖掘ASP.NET 2.0系列课程(5):全面优化ASP.NET 2.0.pdf"将详细讲解这些概念和实践...
总之,这个教程全面覆盖了ASP.NET 2.0框架与Web2.0技术的结合应用,适合有一定.NET基础并希望进一步提升Web开发技能的开发者学习。通过深入学习和实践,开发者将能够创建出具有Web2.0特性的高效、互动性强的Web应用...
Google Web Toolkit(GWT)作为一种强大的工具集,为开发者提供了创建高效、交互性强的Web 2.0应用程序的能力。本书《Pro Web 2.0 Application Development with GWT》由Jeff Dwyer撰写,旨在通过详细的案例分析和...
Web2.0是一个里程碑式的互联网发展阶段,其特点是互动性、用户参与度高和富互联网应用程序(RIA)。在Web2.0的世界里,控件扮演着至关重要的角色,它们不仅增强了用户体验,还简化了开发者的工作。本书通过系统化的...
- ASP.NET 3.5是微软发布的一个用于构建动态Web应用程序的框架,它在ASP.NET 2.0的基础上增加了许多新功能。 - 新增功能包括LINQ(Language Integrated Query)、ADO.NET实体数据模型等,这些功能极大地提高了开发...
### GWT与Web 2.0应用开发 ...总之,《Pro Web 2.0 Application Development with GWT》是一本全面介绍如何使用GWT构建Web 2.0应用程序的指南。无论是初学者还是有经验的开发者,都可以从中获得有价值的信息和灵感。
ASP.NET 2.0是微软推出的用于构建Web应用程序的框架,它是.NET Framework的一部分。这个快速入门教程涵盖了ASP.NET 2.0的一些核心概念和实用技巧,对于初学者来说是很好的学习资源。在这个教程中,你将了解到如何...
J2EE是企业级的Java开发平台,提供了全面的服务器端解决方案,支持多层架构和分布式应用程序。在论坛系统中,J2EE可以用于处理用户的登录验证、数据持久化、业务逻辑处理等核心功能。例如,使用Servlet进行请求处理...
ASP.NET 2.0是微软推出的用于构建动态网站、Web应用程序和Web服务的框架,它是在ASP.NET 1.x的基础上进行的一次重大升级,引入了许多新特性,提升了开发效率和性能。本教程将深入探讨ASP.NET 2.0的核心概念和技术,...
8. **AJAX支持**:虽然Web2.0的概念是在ASP.NET 2.0之后提出,但微软后续通过ASP.NET AJAX扩展,使开发者能够创建部分页面更新,提升用户体验。 9. **数据访问改进**:ADO.NET Entity Framework的前身——DataSet和...