微波EDA网,见证研发工程师的成长!
首页 > 通信和网络 > 通信网络技术文库 > Web应用中缩短Web响应时间的技术研究

Web应用中缩短Web响应时间的技术研究

时间:08-25 来源:现代电子技术 点击:

  用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应用的总体性能。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top