版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 Flex 性能简评:Flex 和 JavaServer Pages 应用程序的比较2004 年5月Copyright © 2003 Macromedia, Inc. 保留所有权利。本文所包含信息代表了 Macromedia 在发表日期当时对文中所讨论问题的看法。由于 Macromedia 必须对市场情况的变化作出反应,本文不应当被认为是Macromedia 的承诺,而且 Macromedia 也不保证在发表日期后文中信息的准确性本白皮书的目的仅仅是提供信息。MACROMEDIA 在本文中未做任何明白表述的或者暗示的保证。Macromedia 可能对本文中的主题拥有专利权、专利应用权
2、、商标权、版权或其它知识产权。除非有 Macromedia 提供的书面许可协议,本文的提供并为给您任何使用这些专利权、商标权、版权或其它知识产权的许可。Macromedia®、Macromedia ColdFusion®、Macromedia Dreamweaver®、Macromedia Fireworks®、Macromedia FreeHand® 和 Macromedia Flash® 是Macromedia 公司在美国和/或其它国家的商标或注册商标。本文中涉及到的真实公司名称或产品名称的商标权归它们各自拥有者所有。Macrom
3、edia, Inc.600 Townsend Street, Suite 500San Francisco, CA 941034152522000目录介绍 (2高层体系结构 (2实例应用程序概述 (3对单一 Flex 商店应用程序会话进行分析 (5在压力下对 Flex 商店应用程序进行比较 (7Flex 应用程序的性能改善 (9总结 (103Flex 性能简评:Flex 和 JavaServer Pages 应用程序的比较Macromedia Flex 相比传统的 web 应用程序提供了更为丰富的用户体验,而服务器端部署的开销相同或者更低。通过与使用 JSP 实现的相似程序进行比较,本研究对
4、Flex 应用程序的服务器端性能进行了详细阐述。Macromedia 通过分别使用 MXML(Macromedia Flex 标记语言和 JSP 语言来实现一个购物车应用程序来测定 Flex 和 JSP 的服务器端性能特点。通过设置应用程序基准,Macromedia 对购物车应用程序在明显用户压力下的每事务资源花费和服务器 CPU 负载进行了测定。研究显示,两个应用程序需要相似的网络带宽和服务器内存,但Flex 应用程序对服务器 CPU 处理循环的需要明显较少。一般而言,JSP 应用程序的服务器端负载直接取决于用户交互动作(例如,当用户跳转至新页面或者提交数据至服务器进行处理时的数量,而 Fl
5、ex 应用程序的负载取决于向服务器请求应用程序或提交数据请求的并行用户的数量。对服务器端较小的负载允许 Flex 服务器在一个小时的基准测试中多服务 100 个额外的用户。Flex 应用程序的体系架构与 JSP 应用程序完全不同。这些区别造就了比传统 web 应用程序需要更少服务器资源,提供更丰富体验的应用程序。下面的表格概述了本研究所作的主要测量测量对象JSP 应用程序MXML 应用程序完成一个购物会话需要传输的字节数306,444 bytes 282,931 bytes平均内存占用75 MB 75 MB平均服务器端 CPU 占用21.2 % 0.8 %1介绍Flex 性能的两个独特方面:客
6、户端性能和服务器端性能。客户端性能是指在用户计算机上的 Flash 客户端上运行时,用户界面的响应性。该响应性取决于应用程序的编写、应用程序的复杂性和操作环境(网络、操作系统和硬件。服务器端性能是指生产应用中 Flex 服务器的响应性和可量测性。Flex服务器端性能取决于操作环境、缓存和编译设定,应用程序编写的方式、访问服务器的客户端的数量,以及在客户端和服务器之间传输的数据的大小和复杂性。本文聚焦于服务器端性能,并示范应用于生产中的 Flex 服务器的性能特征和可量测性。要了解给出最优客户端性能的最佳实践,请前往Macromedia Flex 开发者中心查看Flex 应用程序性能:改善客户端
7、应用程序性能的技巧与技术。高层体系结构Flex 服务器和 JSP 应用程序都是作为 J2EE servlet 容器中的标准web 应用程序部署的。通过使用标准部署体系结构,你可以假设管理与部署 Flex 和 JSP 应用程序的 IT 成本是相似的。当浏览器做出 Flex 应用程序请求时,Flex 在必要的情况下将 MXML应用程序编译为 SWF 文件,缓存该 SWF 文件,并返回一个 HTML页,在该页的HTML object和embed标签中引用被编译 SWF 文件。当浏览器处理object和embed标签时,服务器请求该 SWF 文件,于是该 SWF 文件开始在 Macromedia Fl
8、ash Player 中运行。同时,浏览器将该 SWF 文件保存在浏览器缓存中。如果该 SWF 文件仍为最新版本,服务器将从浏览器缓存中读取对同一 MXML 应用程序的后续请求。Flex 发送应用程序到浏览器后,Flash Player 搭建图形用户界面并执行客户端业务逻辑,包括在整个应用程序中进行跳转和在客户端进行输入有效性检验。Flex 应用程序同样能够使用基于 SOAP、HTTP 和AMF 的 web 服务与服务器进行通信。与之相反,对 JSP 的初始请求将返回一个 HTML 页面;然后,HTML页面中包含的每一个媒体资源(例如一个图像文件都需要向服务器发送一个单独的请求。客户端浏览器必
9、须绘制出 HTML page 和大多数的用户操作,然后来回连接服务器以获取新生成的页面。实例应用程序概述为将 Flex 的性能与典型 web 应用程序的性能相比较,Macromedia制作了使用 Flex 分发的 Flex 商店购物车应用程序的 MXML 和 JSP两种版本。虽然两个应用程序都支持基本的购物车功能,MXML 版本包含了额外的功能,例如拖放功能、可缩放窗口和 HTML 无法提供的视觉效果。用户使用 Flex 商店应用程序可以浏览商品、添加商品至购物车和提交购买信息来完成交易。用户能够浏览商品目录,从一系列的产品图标中选择产品,并查看所选择产品的细节。同时,用户能够对列出的项目进行
10、排序,或者按照价格范围筛选商品,只显示他们感兴趣的商品。用户能够添加商品至购物车、改变数量和从购物车中删除商品。点击链接查看 Flex 商店应用程序。付账流程要求用户在三个面板中输入收货和支付信息:联系信息,例如姓名和地址对应于送货方式的收货地址帐单支付信息对每一个订单,服务器验证所需的客户信息和信用卡信息是否有效。下面的图显示了 JSP 和 MXML 版本的购物车: 图 1:JSP 版本的 Flex 网上商店应用程序 图 2 :MXML 版本的 Flex 网上商店应用程序对单一Flex 商店应用程序会话进行分析MXML 版本的 Flex 商店,其初始负载是一个 200K 的 SWF 文件,而
11、 JSP 版本 Flex 商店的初始负载是一个 10K 的 HTML 页(不包括图像,图像单独计算。区别在于 MXML 应用程序包含整个应用程序,而 JSP 版本返回的 HTML 页只表示应用程序的第一屏。MXML 应用程序无需来回访问服务器,就能提供应用程序浏览、用户输入和输入有效性这些功能。JSP 应用程序必须与服务器交互,为每一个用户操作请求一个全新的 10K 大小的 HTML 页。典型的购物车会话涉及到用户浏览商品、排序商品列表、按价格筛选商品和付帐。Macromedia 在两个应用程序中都模拟了这些场景,并对各个应用程序产生的网络流量进行了比较。如下表所示:网络流量比较操作MXML
12、页大小 (KJSP 页大小 (K起始页flexstore.mxml 2 flexstore.jsp10History manager 10Flexstore.swf 200Web 服务 wsdl 5商品图片(15 个JPEG 文件65 Product JPEGfiles (1565浏览 5 种商品无活动flexstore.jsp (5 50 按姓名排序flexstore.jsp 10浏览商品flexstore.jsp 40 按价格范围排序flexstore.jsp 10 选择购买 3 种商品flexstore.jsp 30添加 3 种商品到购物车flexstore.jsp (3 30 从购物车
13、中删除flexstore.jsp 10 付帐flexstore.jsp 10网络流量比较操作MXML 页大小 (KJSP 页大小 (K输入基本信息flexstore.jsp 10输入收货信息flexstore.jsp 10输入支付信息flexstore.jsp 10完成购买web 服务调用 5 flexstore.jsp 10总计带宽282K 305KMXML 应用程序使用单一会话访问服务器来加载应用程序、下载例如JPG 图像这样的外部应用程序资源,并提交购买交易。每一次购买,Flex 购物应用程序处理六到八个请求。初始请求返回一个引用 MXML SWF 文件的小 HTML 页,以及历史记录管
14、理 HTML页。Flex 的历史记录管理功能使用户能够使用浏览器的后退和前进按钮来在应用程序的不同点之间跳转。例如,在付帐流程的第三屏使用浏览器后退按钮能够返回第二屏。Flex 提供的初始 HTML 页包含有 HTML object和embed标签,这些标签请求编译过的 Flex 应用程序。Flex 服务器从内存中的缓存返回一个 200K 的 SWF 文件。浏览器加载 SWF 文件后,将从服务器加载图像、来自 MXML 应用程序请求的初始代码和描述 Purchase Orderweb 服务的WSDL。唯一的更多网络流量是在用户完成购买,提交交易到 Purchase Order web 服务时。
15、JSP 购物应用程序为同一个购物会话产生约 30 个网络请求。这些请求包括生成的 HTML 页和商品图像。JSP 应用程序需要服务器为用户在客户端的每一个交互动作返回一个新的 HTML 页。JSP 和 MXML 应用程序都能有效地使用浏览器缓存。例如,如果用户稍后刷新同一个 MXML 应用程序,那个 200K 的 SWF 文件很可能还在本地浏览器缓存中。如果该 SWF 文件在浏览器缓存中,浏览器将向服务器发送一个 HTTP header 中包含 If-Modified-Since 的请求。HTTP header 中包含了服务器向浏览器提供 SWF 文件的时间。如果自 header 中记录的时间
16、起,服务器上的 MXML 应用程序或依赖关系未被改动,浏览器将从本地缓存加载 SWF 文件,而不会通过网络再次请求。Flex 性能简评:Flex 和 JavaServer Pages 应用程序的比较 在示例会话中,应用程序间的网络带宽具有可比性,在 280K-305K 左 右。MXML 应用程序需要的网络带宽是固定的,然而,JSP 应用程序 的网络带宽取决于每个客户进行的交互动作的数量。 在压力下对 Flex 商店应用程序进行比较 第二个测试测定在模拟多用户的压力状态下,各个应用程序在服务器产 生的影响。服务器上的关键测量指标如下: CPU 使用率 分配给应用程序的内存大小 应用程序需要的网络
17、带宽 使用两个相同的客户端,对同一个服务器进行了两组测试。客户端模拟 100 个虚拟实时用户运行一个小时。测试对测试会话中在服务器上产生 的影响进行测量。测试工具模拟每个会话时长三分钟,模拟真实的浏 览体验。 服务器配置是带有 2 GB 内存的双处理器 2.8 GHz Intel 机器,运行 Microsoft Windows 2003,Macromedia JRun 4 updater 2,和 Flex 1.0。客户端机器都使用 Microsoft Web Stress Tool 的 1.1.293.1 版本。 通过比较两个应用程序,Macromedia 发现网络带宽和内存的使用相 当,但
18、Flex 服务器的 CPU 使用率明显的低。下表总结了这些测试结 果。需要注意的是,由于服务器的负载较轻,Flex 比 JSP 应用程序多 服务了 100 多个会话。因此,Flex 应用程序的总计带宽要比 JSP 应 用程序稍多。因为访问网络的次数较少,Flex 服务器的 socket 连接数 也较小。在压力下,服务器的内存消耗没有变化。CPU 使用上的区别 很明显。 对 Flex 和 JSP 应用程序所需的服务器资源进行比较 会话数 网络带宽 (K Socket 连接数 平均内存消耗 (JRun MB 平均 CPU 消耗 (Total CPU % Flex 服务器 JSP 服务器 1900
19、1800 557709 480860 53522 94255 75 75 0.8 21.2 7 Flex 性能简评:Flex 和 JavaServer Pages 应用程序的比较 图 3 和 4 显示了 Flex 和 JSP 的 CPU 消耗。对于 Flex 应用程序, JRun 服务器只是偶尔上升到 20-40% CPU 使用率。JSP 的 CPU 使 用率平均明显要大,而且会周期性地达到 80-100% 的使用率峰值。 图 3:压力下(100 用户,1 个小时)Flex 应用程序的 CPU 消耗 8 Flex 性能简评:Flex 和 JavaServer Pages 应用程序的比较 图 4
20、:压力下 JSP 应用程序的 CPU 消耗 Flex 应用程序的性能改善 Flex 客户端处理模型和配置能力为性能的调整带来了更多的机会。例 如,可以通过嵌入商品图像到 SWF 文件中来减少网络带宽和连接数。 SWF 文件大小会增加 60K(或者说达到 260K 的大小),但应用程序 需要的到服务器的连接将减少 15 个。另一个可能的改善是如果不需要 的话就禁用 Flex 的历史记录管理功能;这将防止 Flex 应用程序传输 历史记录管理 HTML 页,从而减少网络消耗。 9 Flex 性能简评:Flex 和 JavaServer Pages 应用程序的比较 总结 本研究说明了以下几个关键点: Flex 和 JSP 应用程序都使用标准的 J2EE 部署机制,所以管理这些 不同风格的应用程序的 IT
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《医学昆虫与健康》课程教学大纲
- 《公共管理学》课程教学大纲
- 河南省顶级名校2024-2025学年高一上学期10月检测化学试题含答案
- 2024年出售合作红砖合同范本
- 2024年承接钻井业务合同范本
- 东阿阿胶的培训
- 山西省运城市2024-2025学年高二上学期11月期中考试数学试卷(含解析)
- 写好活动作文教学
- 七下数学趣味活动
- 2024至2030年中国高级磁控健身车行业投资前景及策略咨询研究报告
- GB/T 40386-2021再生纯铝原料
- GB/T 3766-2001液压系统通用技术条件
- GB/T 23114-2008竹编制品
- 松下panasonic-视觉说明书pv200培训
- 单县烟草专卖局QC课题多维度降低行政处罚文书出错率
- 【桌面推演】XX应急预案桌面推演方案
- 外研版五年级英语上册期末复习要点
- 《子路、曾皙、冉有、公西华侍坐》 课件46张
- 运动技能学习原理课件
- 《注册建造师执业工程规模标准》
- 脓肿切开引流术精选课件
评论
0/150
提交评论