Chinaunix首页 | 论坛 | 博客
  • 博客访问: 16495236
  • 博文数量: 5645
  • 博客积分: 9880
  • 博客等级: 中将
  • 技术积分: 68081
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-28 13:35
文章分类

全部博文(5645)

文章存档

2008年(5645)

我的朋友

分类:

2008-04-28 21:40:40

下载本文示例代码
天极IT资讯短信服务 电脑小技巧 function check4() { if (dn.mobile.value.length!=11) { alert("手机号码不正确!"); dn.mobile.focus(); return false; } return true; } 资费:包月5元手机: 介绍:细处着手,巧处用功。高手和菜鸟之间的差别就是:高手什么都知道,菜鸟知道一些。电脑小技巧收集最新奇招高招,让你轻松踏上高手之路。   “让你的WEB应用程序完成你想做的事情是一回事,而让他们快速、有效的去做常常是另外一回事。”   在这篇文章里我将初步讨论有关“WEB应用程序的性能”的问题,主要是一些基本概念以及工具,算是抛砖引玉吧!注意这些内容同样适用于J2EE应用。此后,也许我会写更多关于此方面的文章。  首先,这里有两个性能方面的重要指标。请注意,下面的“定义”并不规范,仅供参考。  * Response Time - 响应时间   从初始化请求到完成响应所用的时间。这是一个测试WEB应用程序速度的重要度量。  * Scalability - 伸缩性   一个可伸缩的应用程序的响应时间随负载的增加而线性增加。   没有WEB应用程序可以处理无限数目的请求,但是一般我们可以预测一个范围,并保证我们的WEB应用程序可以在此范围内“优雅”的伸缩,即始终把响应时间维持在可接受的级别。   如果我们打算优化我们的WEB应用程序,那么至少我们应该知道它到底该不该优化。压力测试可以解答这个问题。  * Load Test - 压力测试     为WEB应用程序模拟用户请求以测量其伸缩性的过程。它非常有用,虽然开始的时候会觉得有点“变态”。一般我们会模拟大量的用户请求以获得在WEB应用程序的速度恶化到无法接受的级别前能够处理的并发请求数量。   所谓“无法接受的级别”并不是一定要到实例池崩溃、应用服务器瘫痪甚至服务器当机的时候,这要视需求而定。  一般压力测试包含如下步骤:  * 确定接受请求并完成响应的最大允许的延时。  * 估计WEB应用程序的最大并发用户数量。  * 模拟用户请求,以一个比较小的负载开始,逐渐增加模拟用户的数量,直到WEB应用程序的 相应延时超过最大延时。  * 如果负载比估计的用户数量小,那么应该优化这个WEB程序,否则你选择性的执行优化。  你不会在考虑自己写一个测试程序吧?算了,何必再重新发明一次轮子?这里有一些压力测试工具,它们各有特色,先介绍免费的:  * Web Application Stress Tool, Microsoft,   * JMeter, Java Apache Project,   * LoadItUp, BroadGun Software,   如果你或你的公司很有Money,或者需要更加丰富的功能,可以使用以下商业软件,不过它们都价值$10,000,甚至更多:  * WebLoad, RadView Software,   * SilkPerformer, Segue Software,   * Benchmark Factory, Quest Software,   * LoadRunner, Mercury Interactive, http://www.mercuryinteractive.com/   无论你选择哪种工具,它都至少应该提供以下的功能,以便为以提供丰富且有意义的测试数据:  * 发送GET和POST请求  * “记录”从浏览器发送的GET和POST请求(以免开发者需要手写这些合适的请求)。  * 获取和发送COOKIE。  * 多线程  * 模拟用户延迟  * 记录性能数据  * 控制带宽  我打赌如果你以前没有接触过以上这些内容,那么你的WEB应用程序很难在压力测试中获得令人满意的结果。你会看到响应时间会随着请求数量的增多而暴涨,甚至出现一些我们不想看到的情况,比如“拒绝连接”。  一旦没能通过压力测试我们应该如何应对呢?优化!没错,不过我们怎么知道那里应该优化呢?Profiler可以对此提供很多的帮助。(我不知道怎么翻译它更贴切一些,所以干脆不翻译了!)  Profiler提供这样的功能,它可以检测你的应用程序并提供一些有用的运行时信息,比如某块代码的执行时间、内存/堆的使用情况、内存中的对象实例数量等等。比如,我们想知道到底是哪个Java对象的哪个方法耗费了更多的时间。  以下是一些Profiler:  * Quantify,Rational Software,   * Optimizeit,Intuitive Systems,   * JProbe,Sitraka Software,   请注意,我们不能过分依赖工具,虽然它们很多时候可以极大的是我们的工作变得简单、轻松。一般如果你知道了系统的瓶颈所在,修改往往是一件相对轻松的事情。个人认为寻找、发现系统的瓶颈所在才是最关键、也是最体现一个人功力的步骤。这是一个非常专业的问题,它需要你对所使用的应用平台、软件架构、数据库系统、网络环境等等诸多方面非常深的造诣。这并不夸张,任何一个会JSP和JDBC的人都可以写出一个WEB应用程序来,但是那还相差太远……限于篇幅,话题先进行到这里。其实你可以在很多地方找到有关测试和优化技巧的文章,都非常有针对性,比如TheServerSide.com、JavaLobby.com等。Java之路很长,一步一步走吧!! 天极IT资讯短信服务 电脑小技巧 function check4() { if (dn.mobile.value.length!=11) { alert("手机号码不正确!"); dn.mobile.focus(); return false; } return true; } 资费:包月5元手机: 介绍:细处着手,巧处用功。高手和菜鸟之间的差别就是:高手什么都知道,菜鸟知道一些。电脑小技巧收集最新奇招高招,让你轻松踏上高手之路。   “让你的WEB应用程序完成你想做的事情是一回事,而让他们快速、有效的去做常常是另外一回事。”   在这篇文章里我将初步讨论有关“WEB应用程序的性能”的问题,主要是一些基本概念以及工具,算是抛砖引玉吧!注意这些内容同样适用于J2EE应用。此后,也许我会写更多关于此方面的文章。  首先,这里有两个性能方面的重要指标。请注意,下面的“定义”并不规范,仅供参考。  * Response Time - 响应时间   从初始化请求到完成响应所用的时间。这是一个测试WEB应用程序速度的重要度量。  * Scalability - 伸缩性   一个可伸缩的应用程序的响应时间随负载的增加而线性增加。   没有WEB应用程序可以处理无限数目的请求,但是一般我们可以预测一个范围,并保证我们的WEB应用程序可以在此范围内“优雅”的伸缩,即始终把响应时间维持在可接受的级别。   如果我们打算优化我们的WEB应用程序,那么至少我们应该知道它到底该不该优化。压力测试可以解答这个问题。  * Load Test - 压力测试     为WEB应用程序模拟用户请求以测量其伸缩性的过程。它非常有用,虽然开始的时候会觉得有点“变态”。一般我们会模拟大量的用户请求以获得在WEB应用程序的速度恶化到无法接受的级别前能够处理的并发请求数量。   所谓“无法接受的级别”并不是一定要到实例池崩溃、应用服务器瘫痪甚至服务器当机的时候,这要视需求而定。  一般压力测试包含如下步骤:  * 确定接受请求并完成响应的最大允许的延时。  * 估计WEB应用程序的最大并发用户数量。  * 模拟用户请求,以一个比较小的负载开始,逐渐增加模拟用户的数量,直到WEB应用程序的 相应延时超过最大延时。  * 如果负载比估计的用户数量小,那么应该优化这个WEB程序,否则你选择性的执行优化。  你不会在考虑自己写一个测试程序吧?算了,何必再重新发明一次轮子?这里有一些压力测试工具,它们各有特色,先介绍免费的:  * Web Application Stress Tool, Microsoft,   * JMeter, Java Apache Project,   * LoadItUp, BroadGun Software,   如果你或你的公司很有Money,或者需要更加丰富的功能,可以使用以下商业软件,不过它们都价值$10,000,甚至更多:  * WebLoad, RadView Software,   * SilkPerformer, Segue Software,   * Benchmark Factory, Quest Software,   * LoadRunner, Mercury Interactive, http://www.mercuryinteractive.com/   无论你选择哪种工具,它都至少应该提供以下的功能,以便为以提供丰富且有意义的测试数据:  * 发送GET和POST请求  * “记录”从浏览器发送的GET和POST请求(以免开发者需要手写这些合适的请求)。  * 获取和发送COOKIE。  * 多线程  * 模拟用户延迟  * 记录性能数据  * 控制带宽  我打赌如果你以前没有接触过以上这些内容,那么你的WEB应用程序很难在压力测试中获得令人满意的结果。你会看到响应时间会随着请求数量的增多而暴涨,甚至出现一些我们不想看到的情况,比如“拒绝连接”。  一旦没能通过压力测试我们应该如何应对呢?优化!没错,不过我们怎么知道那里应该优化呢?Profiler可以对此提供很多的帮助。(我不知道怎么翻译它更贴切一些,所以干脆不翻译了!)  Profiler提供这样的功能,它可以检测你的应用程序并提供一些有用的运行时信息,比如某块代码的执行时间、内存/堆的使用情况、内存中的对象实例数量等等。比如,我们想知道到底是哪个Java对象的哪个方法耗费了更多的时间。  以下是一些Profiler:  * Quantify,Rational Software,   * Optimizeit,Intuitive Systems,   * JProbe,Sitraka Software,   请注意,我们不能过分依赖工具,虽然它们很多时候可以极大的是我们的工作变得简单、轻松。一般如果你知道了系统的瓶颈所在,修改往往是一件相对轻松的事情。个人认为寻找、发现系统的瓶颈所在才是最关键、也是最体现一个人功力的步骤。这是一个非常专业的问题,它需要你对所使用的应用平台、软件架构、数据库系统、网络环境等等诸多方面非常深的造诣。这并不夸张,任何一个会JSP和JDBC的人都可以写出一个WEB应用程序来,但是那还相差太远……限于篇幅,话题先进行到这里。其实你可以在很多地方找到有关测试和优化技巧的文章,都非常有针对性,比如TheServerSide.com、JavaLobby.com等。Java之路很长,一步一步走吧!! 下载本文示例代码


WEB应用程序的测试与优化概述WEB应用程序的测试与优化概述WEB应用程序的测试与优化概述WEB应用程序的测试与优化概述WEB应用程序的测试与优化概述WEB应用程序的测试与优化概述WEB应用程序的测试与优化概述WEB应用程序的测试与优化概述WEB应用程序的测试与优化概述WEB应用程序的测试与优化概述WEB应用程序的测试与优化概述WEB应用程序的测试与优化概述WEB应用程序的测试与优化概述WEB应用程序的测试与优化概述WEB应用程序的测试与优化概述
阅读(116) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~