dorado5性能指南v11.docx

上传人:b****3 文档编号:2811931 上传时间:2022-11-15 格式:DOCX 页数:74 大小:730.07KB
下载 相关 举报
dorado5性能指南v11.docx_第1页
第1页 / 共74页
dorado5性能指南v11.docx_第2页
第2页 / 共74页
dorado5性能指南v11.docx_第3页
第3页 / 共74页
dorado5性能指南v11.docx_第4页
第4页 / 共74页
dorado5性能指南v11.docx_第5页
第5页 / 共74页
点击查看更多>>
下载资源
资源描述

dorado5性能指南v11.docx

《dorado5性能指南v11.docx》由会员分享,可在线阅读,更多相关《dorado5性能指南v11.docx(74页珍藏版)》请在冰豆网上搜索。

dorado5性能指南v11.docx

dorado5性能指南v11

 

dorado5性能指南

V1.1

 

BSTEK

2007年1月

文档信息

文档中文名称

dorado5性能指南

文档英文名称

dorado5performanceGuide

文档内容简介

讨论基于dorado5的应用系统性能优化的高级技术文档。

日期

作者

版本

变更说明

2007年1月26日

Benny

V1.0

创建

2007年1月26日

Thomas

V1.1

版面调整

内容目录

1概述5

2系统设计和分析6

2.1确定设计目标6

2.2避免不合理的设计8

2.3Dorado页面的初始化过程9

2.4GZIP压缩11

2.5客户端缓存12

2.6实例与参考数据14

2.6.1网页大小与响应速度的关系14

2.6.2初始化耗时与CPU的关系15

2.6.3网页复杂度与网页大小的关系15

2.6.4实例分析17

2.7调整开发规范18

3开发技巧19

3.1发掘性能隐患19

3.1.1通过观察现象来定位19

3.1.2利用Dorado的Debugger功能22

3.1.3检查页面大小24

3.1.4消灭垃圾数据和对象25

3.2数据库相关26

3.2.1选择高效的JOIN方式26

3.2.2配置正确的数据库方言28

3.2.3使用分页查询29

3.2.4精简非必要的字段29

3.3Dorado的服务端技巧30

3.3.1把业务逻辑代码留在服务端30

3.3.2避免LookupField的过度使用33

3.3.3用好ViewModel的实现类35

3.3.4正确的使用EL表达式37

3.4Dorado的客户端技巧38

3.4.1利用布局技巧改善操作体验38

3.4.2哪些逻辑代码应该放在onDatasetsPrepared事件中39

3.4.3如何遍历Dataset40

3.4.4disableControls()和enableControls()41

3.4.5disableEvent()和enableEvent()44

3.4.6警惕主从绑定带来的连锁反应45

3.4.7利用dataset的autoLoadPage属性改善操作体验50

3.4.8为部分下拉框热身51

3.4.9谨慎使用下拉框的mapValue特性52

3.4.10通过copyRecord()复制记录53

3.4.11利用insertRecords()批量添加数据53

3.4.12提高查找记录的效率55

3.4.13使用异步操作56

3.4.14利用UpdateCommand的数据感知特性减少flushData()58

3.5其他客户端技巧61

3.5.1利用setTimeout()、clearTimeout()减少调用次数61

3.5.2检查IE内存泄露62

3.5.3如何利用JavaScript代码生成界面元素63

3.5.4innerText和innerHTML65

3.5.5如何高效的拼装字符串65

3.5.6把自定义的JavaScript放入到包含文件中67

4部署和维护67

图表目录

图表1BySoftNetworkMonitor7

图表2BWMeter7

图表3GroupBox10

图表4SubWindow10

图表5OutlookBar11

图表6状态120

图表7状态220

dorado5性能指南

1概述

本文主要讨论在使用Dorado的过程需要注意的一些与性能相关的要点和技巧,其中也会涉及到小部分Dorado之外的知识,如HTTP、Java、SQL等。

一般而言,当Web应用的性能出现问题时,可能与Dorado的使用方式相关外部资源的主要有5点,按照的他们对于整体性能影响的关键程度排列如下:

●数据库–数据库服务器的负荷过高可能是由于低效的SQL引起的;或者是由于应用当中的运算逻辑设计不当,导致数据库被频繁访问或死锁。

可能导致的响应速度差异:

10倍数量级

出现的几率:

●客户机CPU–由于Dorado的客户端主要通过HTML+JavaScript构建,因此Dorado应用的界面相应速度与客户机CPU的运算能力直接相关。

并且由于JavaScript本身是一种“解释型”的语言,不同的编程技巧可能导致迥然不同的性能表现。

可能导致的响应速度差异:

10倍数量级

出现的几率:

较高

●网络带宽–当客户端页面的界面设计不够合理时,例如在单个页面中堆放了过多的组件;包含了大量不可缓存的JavaScript;未被清理的垃圾数据都有可能造成单个页面的体积过大,从而导致网络传输环节的性能瓶颈。

可能导致的响应速度差异:

2倍数量级

出现的几率:

较高

●服务器内存–当Dorado中的部分环节设计的不够合理时可能导致对服务器内存的过程使用,最终造成JVM频繁的执行垃圾回收甚至停止响应。

可能导致的响应速度差异:

2倍数量级

出现的几率:

一般

●服务器CPU–服务器CPU的负荷过高可能是由于低效的算法或不良的编程习惯导致的。

可能导致的响应速度差异:

2倍数量级

出现的几率:

一般

由于Web应用的性能优化是一个很大的课题,而本文的讨论重点是Dorado的使用技巧,因此对于其中的部分内容只会做简要的叙述。

要了解更多关于Dorado之外性能优化细节请参考下列文献:

●《Oracleperformancetuning》

●《EffectiveJava》

●《Web性能优化》

2系统设计和分析

2.1确定设计目标

在开始着手规划应用之前,首先应该了解一下应用最终的运行环境。

系统的最终响应时间往往是这样构成的:

服务端处理的耗时+网络传输的耗时+客户端处理的耗时。

因此,影响响应时间的关键因此应该包括以下6点。

●用户对系统响应速度的敏感程度

不同的用户对于系统响应时间的忍耐极限是不同的,甚至是在同一个系统中用于对不同功能的忍耐极限也是不一样的。

这主要跟用户是否需要频繁的使用某功能相关。

对于那些不常用的界面,例如每月才操作一次的报表或查询类界面而言,用户完全可以为它等上半分钟而没有任何怨言;可是对于那些每天要点击上百次的提交按钮,即使是3秒钟的延时他也无法忍受。

开发人员需要根据与用户的交流和自己的经验来确定那些常用功能的最大响应时间,这一点甚至应该写进需求设计文档,强迫开发人员在开发时对各个功能点的响应时间进行基本的测试。

尽管在开发阶段得到的测试结果很有可能跟最终应用上线时的结果存在差异,但这样做仍可以避免相当一部分性能问题的出现,特别是那些由客户端导致的性能问题。

●在线用户数量

需要掌握将来有多少用户可能同时在线使用系统、某些最常用的功能有多少在线用户。

在分析网络因素对响应速度的影响时,在线用户的数量是一个非常关键的指标。

同时,在线用户数量对于将来的如何进行压力测试也有着指标性的意义。

在进行性能测试时我们常常会提到一个并发用户数的概念,需要特别注意的是并发用户与在线用户是完全不同的概念。

一般而言,我们习惯以20-50的比率来推算并发用户与在线用户之间的关系。

例如:

当系统存在2000个在线用户时,测试时可以以40-100个并发用户作为测试基准。

●网络状况

了解服务器与客户机之间的网络带宽、带宽的分配方式、各服务器之间的连接状况。

一般而言,我们需要结合在线用户数量来做一个综合的分析,以此推测出单个用户可使用的实际带宽。

有时,我们很难通过主观判断来确定用户实际享用的网络带宽,或者即使我们通过分析得到了一个数值,它也有可能与实际情况有所差异。

那么这时利用专业的网络监视工具来进行测试才是更加务实的做法。

可选择的工具有:

BySoftNetworkMonitor这是一个完全免费但有点简陋的小工具,可以用于检测网络实际带宽、上行和下行的流量等。

图表1BySoftNetworkMonitor

BWMeter(是一个非常专业的网络监视分析工具。

利用BWMeter可以完成很多有关网络带宽的测试和分析。

我们甚至可以用它来限制网络带宽,以便测试在低带宽下应用的响应速度。

图表2BWMeter

●客户端的硬件配置

此处的客户端的硬件配置注意是指客户机的CPU。

与传统的BS应用不同,基于Dorado的应用的界面响应速度与客户机的CPU运算能力有着直接的关系。

由于浏览器中的主要运算量来自于解析HTML/XML以及执行JavaScript,并且一般而言,浏览器本身所耗用的内存不会超过100M,因此界面响应速度与客户机的内存和硬盘等的配置基本无关。

CPU的运算速度与界面响应速度(特指纯客户端运算)之间是线性相关的。

按照推测,P41.8的系统的处理时间基本是P43.6系统的一倍。

●服务器的硬件配置

服务器的运算能力和IO吞吐量可能直接影响到应用系统最终的响应速度和最大并发量。

不过一般而言,服务器的运算能力不是影响表现层响应速度的最关键因素。

●客户端的软件配置

这里主要是指浏览器的版本和种类。

目前主流的浏览器大都只有IE和Mozilla两种核心,其中IE又占有绝大部分的市场份额。

想常见的MyIE、Mathon、GreenBrowser、腾讯等都是以IE作为核心的。

而FireFox、NetScape是以Mozilla作为核心的。

这些浏览器的性能各不相同,主要由使用的核心决定。

以IE7的核心为参照依据,假设一个Dorado网页在IE7中打开需耗时1秒(此处不考虑网络传输的时间)。

他们之间的性能对比情况大致如下:

浏览器核心

耗时(秒)

IE7

1.0

Mozilla

1.4

IE6

1.6

由此可见,最新推出的IE7有着较明显的性能优势,特别是相对与IE6而言。

另外,在目前的网络环境中各种浏览器插件、工具栏、流氓软件也是一个不个忽略的因素。

在大部分的客户机系统中或多或少的都会安装一些插件。

这些插件的品质良莠不齐,有些会导致浏览器的运行速度极具低下,甚至一些带有JavaScript拦截功能的插件还会阻止Dorado页面的正常运行。

对于这一点,我们目前还没有有效的解决办法,因为有些流氓软件像病毒一样难以卸载,有时可能不得不重新安装系统才能让浏览器恢复工作。

或许随着像瑞星卡卡之类的“流氓软件查杀工具”的逐渐成熟,此问题会逐步得到缓解。

2.2避免不合理的设计

性能问题的发生并不总是与技术和技巧相关。

事实上,现实中碰到的相当多的性能问题并不是开发人员的问题导致的。

最常见的设计问题表现为以下两个方面:

●在单个页面中堆砌过多的控件和逻辑。

●提出一些对于BS应用而言难以实现的功能要求,最终导致开发人员使用不合理的实现方式。

造成这种设计问题的主要原因往往是来自与设计人员不能很好的区分CS应用与BS应用的不同点。

尤其是对于那些从事了多年CS应用开发的设计人员而言,这个问题往往更加突出。

由于dorado的出现使得Web客户端的开发变得越来越简单、功能越来越强劲。

于是很多设计人员开始将越来越多的CS界面的设计模式照搬到BS应用当中。

这其中最常见的大概就是多页标签式的界面了。

对于部分复杂的界面还会出现多页标签的嵌套使用。

为了编程方便这些标签中的内容往往都是直接放置在一个网页当中。

这样,单个网页的尺寸就有可能超过300K。

如下图:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1