- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
Web应用中缩短Web响应时间的技术研究
池连接可以大大提高应用程序的性能和可缩放性。默认情况下,ADO.NET中启用连接池。除非显式禁用,否则,连接在应用程序中打开和关闭时,池进程将对连接进行优化。
3.2 表示层的数据显示
对于优化B/S下的数据显示方面,主要考虑数据传输量的大小,数据传输量的大小是决定显示响应速度的必要前提,这一点是B/S的弱项。数据传输量是指在客户端Web浏览器和Web服务器之间传送的数据量。在用VS.NET开发程序的过程中,通过减少网络的通信量减少IE浏览器和Web服务器层之间的数据传数量,缩短用户感知时间。
3.2.1 使用缓存技术
合理有效地设计和使用缓存是优化应用系统性能的重要手段,在基于Web的支持大量用户的系统开发中,这一点尤为明显。ASP.NET中的缓存能够提供性能和伸缩性的最大效益、利用有效的缓存、可以避免Web服务器与数据库之间的网络往返,绕过占用很多资源的计算,并节省服务器资源,同时改善响应时间和等待时间。
ASP.NET的缓存服务是一种提高服务器性能、降低服务器资源浪费的有效方法。对于安全性要求高的应用程序,采用在WEB服务器上维护缓存数据的方式可以有效地提高页面性能。ASP.NET的缓存对各个应用来说是私有的,是存储各种对象的存储器,缓存的生存周期取决于应用的生存周期,当应用重新启动时,缓存实际上已重建。
Cache实现了最近最少使用(least-recently-used)替换算法,允许ASP.NET强制Cache清除操作——如果可用内存下降到低水平——则自动从Cache中删除不使用的项目。另外Cache支持依赖性到期特性,它能强制包括时间、键值、文件失效。其体系结构如图3所示。
用ASP.NET内置的多级缓存功能,缓存访问过的ASP.NET页面,从而降低Web服务器的负载,并通过更高效地提供被缓存的文件而改善WEB系统的性能。ASP.NET提供了几个级别的缓存。首先,当一个ASPX程序第一次被调用的时候会被编译,编译成功之后,生成的代码会自动缓存,所以重复运行ASP.NET程序的效率会有很大的提高。除此之外,ASP.NET还提供输出缓存(也叫页面缓存)、数据缓存(也叫应用程序缓存)和碎片缓存(也叫部分页面缓存)。
缓存提供一个简单的字典接口,以便于对象放置到缓存中并在以后使用。最简单的情况下,放置一个对象到缓存中,就如同对字典增加一个条目。在缓存策略上采用"文件和键值依赖"策略。从外部文件或者是其他缓存键值是否改变来决定本身键值是否有效。如果依赖发生改变,缓存对象将变得不可使用并从缓存中移动出来,从而更新缓冲。代码如下:
3.2.2 避免服务器和客户端的交互
HTTP是用于WWW客户机和服务器之间进行信息传输的协议,它是一种请求响应类型的协议:客户机向服务器发送请求,服务器收到请求后进行处理,对这个请求作出回答。Web浏览器包含了许多的HTTP请求,每一个请求对应一个小型文件,HTTP对每一个HTTP请求需要建立1个独立的TCP连接。
因此,客户端的每次请求将会引起客户端和服务器间的一次通信,频繁的操作势必对系统的响应时间造成严重的影响。为避免不必要的TCP连接建立,通常只需在向服务器查询或更新数据时才触发客户端与服务器之间的信息交互。能在客户端执行的数据操作应尽可能的用客户端脚本(如Javascript)实现。例如,对用户输入数据的校验,应该尽量在客户端进行校验,再将数据提交给服务器。
3.2.3 利用DTO减少远程调用次数
在分布式架构中,相关层在物理部署上实现分离,通过网络或跨进程调用远程对象或服务。在这种分布式架构中,必须先找到远程对象位置,而且建立与远程计算机的连接,然后才能将数据串行化为字节流,然后可能进行加密,最后才能将其传输到远程计算机。远程调用需要跨越网络或进程,因此会比较慢。
避免远程调用中固有的滞后时间问题的最佳方法是进行更少的调用,并让每个调用传递更多的数据,这可以通过定义有效的数据传输对象(Data Transfer Object,DTO)来实现层与层之间的数据传输。
创建一个数据传输对象(DTO),用该对象包含远程调用所需要的所有数据。修改远程方法签名,以便将DTO作为单个参数接受,并将单个DTO参数返回给客户端。在调用方应用程序收到DTO并将其作为本地对象存储之后,应用程序可以分别对DTO发出一系列单独的过程调用,而不会引发远程调用开销。如图4所示。
在图4中,DTO允许远程对象在单个远程调用中将整个客户名称返回给客户端,这就将调用次数从3次减为1次。客户端进行单个调用,然后在本地与DTO交互,而不用进行多次远程访问服务器。通过使用DTO,在单一远程调用中传输更多的数据信息,减少远程调用的次数,提高分布式调用的性能。
4 测试结果及分析
以上方案已在开发系统中得到实际的应用,并取得了良好的效果。为了测试以上方案的有效性,这里选取系统中有代表的页面,利用VS.NET中的ACT(ApplicationCenter Test)工具进行压力测试。在不考虑网络传输速度的情况下,分别测试原始页面和改进后的页面,得到表1详细的测试结果:
从表1中可以看出,采用上述方案生成的页面无论是在每秒平均请求数还是平均响应时间上,都有数量级的提高,极大地提高了系统的性能,缩短了Web页面的响应时间,从而缩短用户感知延迟时间,提高用户的满意度。
5 结 语
在B/S结构的开发中,响应时间是一个很重要的指标。本文针对Web应用程序的特点,从软件处理数据的角度出发,从优化数据访问以及Web数据显示2方面提出了缩短Web响应时间方案,并利用ACT测试工具对实际应用进行压力测试,发现此方案的可行性。除此之外,还可以通过优化数据库结构的设计,合理配置应用服务器所提供的性能优化选择,合理配置编译器选项等方法对提高Web应用的总体性能。
作者:张晓丽 于海燕 来源:中电网
上一篇:研诺逻辑AAT1130电源管理方案
下一篇:解开视频监控的存储秘密