缓存设计详解低成本的高性能Web应用解决方案

网站性能直接影响访问速度,从而影响访问量。实现高性能Web应用的重要性是不言而喻的。性能瓶颈主要体现在高延时、拥塞和服务器负载,专业的解决方法往往成本较高。做好缓存的设计则可以在控制成本的情况下充分的提高性能。

过去几年中,Web应用程序已经从简单的HTML页面堆积演变成使用各种各样的技术构建高可扩展性和交互式的富应用程序。设计和开发这类应用程序变得越来越复杂,此外,决策者正越来越多地寻求构建更丰富的互动功能到这些应用程序中,同时还要保证可维护性和高性能,但高性能意味着高成本。为了构建提供给最终用户体验的是一个牢固的应用程序,开发人员需要解决潜在的性能瓶颈。

本文侧重于缓存——它是交付高性能Web应用程序急需的——也简要介绍一下压缩功能。有一些公司在生产和销售专门的压缩和性能产品。本文旨在简单介绍在寻求专业产品解决性能问题之前开发人员可以在客户端和服务器端对Web应用程序做的一些性能改进。

性能瓶颈

性能瓶颈主要体现在高延时、拥塞和服务器负载。缓存不能完全解决掉这三个问题,但经过详细的设计考虑,缓存是可以提高性能的。在服务器端和客户端都缓存内容,据调查,平均而言,下载HTML只需要总的用户响应时间的10-20%,剩下的80-90%全部用于下载页面中的其它组成内容,这些组成内容通常包括图像,如公司logo,缓存logo可以有效避免到服务器的多次往返。在前日51CTO上发布的中,Google提到的提升网站速度和性能的低成本技巧中就包括缓存这一条。至于架构设计方面,则可参考51CTO的。 简单地讲,缓存是临时存储。它将数据复制到不同的计算机或不同于原始数据源的位置,有了正确的配置,访问缓存数据的速度比访问原始数据的速度要快得多,使用缓存数据可以减小服务器负载和带宽消耗,从最终用户的角度来看就是性能提高了。

图1显示了Internet如何工作的快速总揽,以及缓存在哪里发生作用。

?

图 1 Internet上的缓存:这个图显示了常见的请求和检索缓存信息的时机 缓存

正如你在图1中所看到的,在服务器和客户端上缓存数据既是可能的也是有效的,图2显示了这三个缓存位置的不同视图。

?

图 2 缓存配置:此图显示了三个典型的缓存位置

1、客户端浏览器缓存:浏览器缓存Web对象后,可以对重复的请求直接响应,不用再从Internet请求数据了。

2、服务器端转发代理缓存:虽然可能有些变化,但这些缓存位置通常是在最终用户防火墙里面,可以对请求直接响应,不需要从原始来源请求数据。

3、服务器端反向代理缓存:也被称为网关或代理缓存,这些缓存服务器的操作代表了客户的来源服务器,术语“内容分发网络(CDN)”就是这些反向代理缓存的集合。 你可以缓存任何可能不止一次被请求的对象,但总有一个危险就是缓存的对象很可能变得陈旧,也就是说,没有准确地反应原始数据。不过可以使用两个参数来控制所有可缓存的对象:freshness和validation。freshness和validation都可以使用HTTP请求和相应组合来进行确定。

◆Freshness确定某个对象是否可以从缓存中获得,使用expires和cache-control:max-age头进行控制。

◆Validation确定某个对象是否已经陈旧,使用last-modified和if-modified-since头进行控制。

设计高度缓存的Web应用程序

企业级Web应用程序既有静态部分又有动态部分,只要进行了正确的设计和架构,都能够实现静态部分从缓存中获取,动态部分从原始服务器获取,但第一步是确定要缓存什么,图3提供了一个指南,可以帮助你确定哪些对象是可缓存,哪些对象是动态的(不可缓存的)。 ?

图 3 确定缓存能力:此图提供了某个对象是否应该缓存的指南

应用程序架构在可缓存对象和不可缓存对象之间有一点差异,开发人员应该寻求最大限度的缓存命中率,同时要避免缓存动态对象。下面是一些最佳实践:

1、使用缓存控制(cache-control:max-age)和有效期(Expires)头

2、使用最后修改时间(last-modified)头

3、检查Web服务器是否支持If-Modified-Since

4、调查为小型站点使用转向代理的可行性,或为大型企业网站从CDN厂家获得专业人员的帮助 5、根据网站的可扩展性思考是使用数据中心还是托管

6、自己动手编码常常需要大量的时间和精力,根据站点的规模,可以考虑采用开源缓存方法,如使用Squid作为代理服务器

7、为文件下载明确使用混合缓存机制

8、确保那些无用户/输入依赖的动态事务可以获得缓存,为不同对象创建缓存映像可以帮助将可缓存对象和不可缓存对象隔离开来

9、小心完全忽略缓存头的内容管理系统(CMS)

为缓存使用头(Header)

本节覆盖了为缓存目的最有用的头。

控制缓存

在HTTP 规范中,服务器应该为缓存控制头发送一个无缓存响应,以指出内容不应该被缓存,客户端和服务器端都应该遵守这个头信息,以防止头中已经声明了的动态内容,大多数开发语言都支持使用这个头信息控制响应头值。

另一方面,你可以为cache-control头返回一个public服务器端应答来允许缓存(即使没有cache-control头也可以指出对象是可以缓存的),cache-control头的值为private是一个特殊情况,表示浏览器可能会在本地缓存对象,但代理服务器不会缓存它。

图4中的请求——响应工作流显示了Google如何通过cache-control头通知代理服务器不要缓存的。 ?

图 4 停止代理服务器缓存:请求--应答流显示服务器返回private阻止代理服务器缓存

最后,服务器使用expires应答时包括了一个表示有效期的日期/时间戳,直到有效期满之前浏览器都可以缓存中的对象。如图5所示。 ?

图 5 过期内容:Google的Gmail服务器返回一个expires头,包括缓存页面的过期日期和时间

这一点你可以验证,Gmail允许浏览器缓存Gmail主页,直到expires头中明确指定的时间到了为止。

使用Last-Modified 头

浏览器使用这个头信息来确定缓存对象生存期的有效性,浏览器请求这个对象时,服务器使用一个包含该对象最后修改时间的时间戳的Last-Modified 头进行响应,当用户下次请求相同的对象时,如果当前的时间戳超出了对象的使用期限,或者用户是通过刷新方式请求该页面的,浏览器会向服务器发送一个if_modified_since请求确定对象是否发生了变化,如果对象的确发生了变化,浏览器就发送一个完整的GET请求以获取新的对象并将其再次缓存起来,否则,浏览器就从它的缓存中提取对象,并更新对象的last-modified值。图6显示了一个工作实例。

?

图 6 最后修改时间:last-modified时间戳让浏览器确定是使用本地缓存内容还是重新请求内容 举一个例子,假设浏览器在请求时,服务器使用last-modified时间戳进行响应,和使用if-modified-since头进行响应(参考图7)时对比一下,看行为有何不同。

?

图 7 检查修改:通过发送if-modified-since头,服务器将会使用一个表示自时间戳指定时间以来是否发生了变化的值进行响应

在图7中,浏览器使用if-modified-since头发送一个请求,服务器使用304代码进行响应,表示浏览器可以使用缓存,不用发起一个完整的GET请求。 为了全面理解这些头信息的效果,最好的办法是你自己动手实验一翻,使用各种不同的头信息组合,并观察它们的行为,分析头信息的一个好工具是Wfetch。

自己动手的方法

正如前面给出的建议,自己动手(DIY)的方法并不总是捷径,专门提供CDN加速的产品和解决方案可以满足不同类型的需求。但如果你要开发的是一个内部使用的产品,可以提供帮助的可能只有Squid了,Squid被用作许多产品的一个组成部分,许多ISP也在使用它。例如,在Java应用程序中,Squid可以被用作Tomcat服务器的代理,Squid提供的不仅仅是HTTP缓存,但关于它的完整介绍已经超出了本文的范围,请读者自行搜索相关文章,可以在看到另一个使用Squid的例子。

HTTP压缩

缓存仅仅是提高Web应用程序性能的方法之一,压缩是另一个关键方法,HTTP压缩在内容发送到客户端之前将其压缩,在客户端和服务器端都有压缩功能,当服务器交付的是压缩内容时,由浏览器进行解压,这样可以节约宝贵的带宽,减少成本和提高响应时间。

浏览器使用值为gzip的accept-encoding—typically头宣称它们支持压缩,服务器使用content-encoding头指定应答数据的编码,例如,如果使用的是gzip格式进行压缩,服务器应该使用值为gzip的content-encoding 头进行响应。

服务器检查响应的MIME类型,只压缩那些通过压缩可以获得好处的类型,如文本文件、HTML和PDF文件,图像格式如gif文件不会从压缩技术获得什么好处,因为gif本身已经是压缩格式了,视频文件以及其它预压缩的二进制文件也不会从压缩功能获得好处。 注意:代理服务器应该和来源服务器支持同类型的压缩。

总体而言,结合缓存和压缩功能可以提高Web应用程序的性能,因此还提高了应用程序的可扩展性。

合集下载

mtk 存储系统原理

mtk 存储系统原理

mtk 存储系统原理

MTK存储系统原理是指联发科技公司(MediaTek Inc.)所设计的嵌入式存储系统的工作原理。MTK存储系统具有高性能、低功耗、低成本等特点,广泛应用于智能手机、平板电脑等移动设备。

MTK存储系统的原理包括以下几个方面:

1. 存储介质选择:MTK存储系统可以支持多种存储介质,如eMMC(嵌入式多媒体卡)和UFS(通用闪存存储器)等。根据设备的性能和成本需求,可以选择适合的存储介质。

2. 存储控制器:MTK存储系统采用专门的存储控制器芯片,负责管理存储介质的读写操作。存储控制器具有高速数据传输接口,可以实现快速、可靠的数据传输。

3. 存储管理算法:MTK存储系统采用先进的存储管理算法,用于提高存储介质的访问速度、数据可靠性和寿命。例如,使用错误纠正码(ECC)算法来保护数据的完整性,使用垃圾回收算法来优化闪存的空间利用率。

4. 缓存技术:MTK存储系统可以使用缓存技术来提高读写性能。常用的缓存技术包括写缓存和读缓存,可以有效地减少存储介质的访问时间。

5. 综合优化:MTK存储系统还会进行综合优化,包括优化存储传输协议、优化操作系统对存储的管理等,以提高整体系统的性能和功耗。

总而言之,MTK存储系统原理包括存储介质的选择、存储控制器的设计、存储管理算法的应用、缓存技术的利用以及综合优化等方面,旨在提供高性能、低功耗的存储解决方案。

缓存服务器梳理(一)

缓存服务器梳理(一)

缓存服务器梳理(⼀)

⼀、概述

主要功能:应⽤解耦,异步消息,流量削锋等问题架构设计:实现⾼性能,⾼可⽤,可伸缩和最终⼀致性架构常⽤消息队列:ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ使⽤场景:1)RabbitMQ:对数据⼀致性、稳定性和可靠性要求很⾼的场景,对性能和吞吐量的要求还在其次(集群不能动态扩展)2)RocketMQ:具有⾼吞吐量、⾼可⽤性、适合⼤规模分布式系统应⽤的特点(⽀持的语⾔较少,语⾔⽀持的情况下优先选择)3)Kafka:基于Pull的模式来处理消息消费,追求⾼吞吐量,适合产⽣⼤量数据的互联⽹服务的数据收集业务(多数⽤于处理⽇志)⼆、核⼼功能理解

解耦:⼀个事务,只关⼼核⼼的流程。⽽需要依赖其他系统但不那么重要的事情,有通知即可,⽆需等待结果异步消息:⼀致性:保证消息的可靠性1)强⼀致性:2)最终⼀致性:主要是⽤“记录”和“补偿”的⽅式。在做所有的不确定的事情之前,先把事情记录下来,然后去做不确定的事情,结果可能是:成功、失败或是不确定,“不确定”(例如超时等)可以等价为失败。成功就可以把记录的东西清理掉了,对于失败和不确定,可以依靠定时任务等⽅式把所有失败的事情重新执⾏⼀遍,直到成功为⽌三、使⽤总结1.消息队列不是万能的,对于需要强事务保证⽽且延迟敏感的,RPC是优于消息队列的。

2.对于⼀些⽆关痛痒,或者对于别⼈⾮常重要但是对于⾃⼰不是那么关⼼的事情,可以利⽤消息队列去做。

3.⽀持最终⼀致性的消息队列,能够⽤来处理延迟不那么敏感的“分布式事务”场景,⽽且相对于笨重的分布式事务,可能是更优的处理⽅式。4.当上下游系统处理能⼒存在差距的时候,利⽤消息队列做⼀个通⽤的“漏⽃”,在下游有能⼒处理的时候,再进⾏分发。

⼀、概述

原理:

1) 将数据写⼊/读取速度更快的存储(设备)

2) 将数据缓存到离应⽤最近的位置

3)将数据缓存到离⽤户最近的位置

缓存分类

整体技术架构解决方案(3篇)

整体技术架构解决方案(3篇)

第1篇

一、引言

随着信息技术的飞速发展,企业对信息技术应用的依赖程度越来越高。如何构建一个高效、稳定、安全的技术架构,以满足企业日益增长的业务需求,成为企业信息化建设的重要课题。本文将从整体技术架构的角度,提出一种解决方案,旨在为企业提供一种可借鉴、可实施的技术架构体系。

二、技术架构概述

技术架构是指企业信息系统的整体设计,包括硬件、软件、网络、数据等多个层面。一个优秀的技术架构应具备以下特点:

1. 高效性:能够满足企业业务需求,提高业务处理速度,降低运营成本。

2. 可扩展性:能够适应企业业务规模和业务形态的变化,满足未来业务发展的需求。

3. 稳定性:系统运行稳定,能够保证数据的安全性和可靠性。

4. 安全性:具备完善的安全机制,防止外部攻击和数据泄露。

5. 易用性:操作简单,便于维护和管理。

6. 经济性:投资合理,具有较长的生命周期。

三、整体技术架构解决方案

1. 硬件架构

(1)服务器:根据企业业务需求,选择性能稳定、扩展性强的服务器。如采用双路或多路处理器、大内存、高速硬盘等。

(2)存储设备:采用分布式存储、虚拟化存储等技术,提高存储性能和可靠性。

(3)网络设备:选用高性能、高可靠性的网络设备,如交换机、路由器等。

2. 软件架构

(1)操作系统:选择稳定性高、安全性好的操作系统,如Linux、Windows

Server等。 (2)数据库:根据业务需求,选择适合的数据库系统,如MySQL、Oracle、SQL

Server等。

(3)中间件:采用高性能、高可靠性的中间件,如消息队列、缓存、负载均衡等。

(4)应用软件:根据业务需求,开发或选用成熟的应用软件,如ERP、CRM、OA等。

3. 网络架构

(1)内网:采用高速、稳定的局域网,实现企业内部网络通信。

(2)外网:采用公网接入,实现企业对外网络通信。

(3)安全防护:采用防火墙、入侵检测系统等安全设备,保障网络安全。

F5web加速技术方案

F5web加速技术方案

F5 WEB加速技术方案

2011年2月

2 / 15 目 录

1. 前言 ................................................................................................................... 2

2. 加速WEB应用,大幅提高用户体验效果 ...................................................... 4

2.1 HTTPS Offload ......................................................................................... 4

2.2 One Connect降低服务器TCP连接数量 ................................................... 5

2.3 HTTP页面压缩降低带宽占用和提高客户端响应速度 ......................... 5

2.4 RAM Cache减小服务器端压力 ............................................................... 7

2.5 应用智能缓存优化动态内容 .................................................................. 9

2.6 IBR 浏览器智能控制 ............................................................................ 10

2.7 Express Documents加速文档下载 ......................................................... 12

web应用程序设计知识点

web应用程序设计知识点

web应用程序设计知识点

Web应用程序设计是指在Web平台上进行程序开发和设计,涉及到一系列的技术和知识点。本文将介绍一些常见的Web应用程序设计知识点,以帮助读者了解并掌握相关知识。

一、前端开发

1. HTML和CSS:HTML是用于创建网页结构的标记语言,CSS用于设置网页的样式和布局。

2. JavaScript:一种脚本语言,可以为网页添加交互性和动态效果。

3. 前端框架:常见的前端框架包括React、Angular和Vue等,可以提高开发效率和用户体验。

二、后端开发

1. 服务器:Web应用程序需要一个服务器来存储数据和提供服务。常用的服务器技术包括Apache、Nginx和IIS等。

2. 数据库:用于存储和管理数据的软件系统,常见的数据库包括MySQL、Oracle和MongoDB等。

3. 后端编程语言:用于开发服务器端程序的编程语言,例如Java、Python和PHP等。

三、网络通信 1. HTTP协议:Web应用程序使用HTTP协议来传输数据,包括请求和响应。

2. RESTful API:一种软件架构风格,用于设计可扩展和灵活的Web服务接口。

四、安全

1. 跨站脚本攻击(XSS):攻击者通过注入恶意脚本来获取用户的敏感信息。

2. 跨站请求伪造(CSRF):攻击者冒充用户发起未经授权的操作。

3. 输入验证和过滤:对用户输入的数据进行验证和过滤,以防止SQL注入和命令注入等安全漏洞。

4. 加密:使用加密算法对数据进行加密,保护数据的安全性。

五、性能优化

1. 前端性能优化:如合并和压缩CSS和JavaScript文件,使用缓存和CDN等。

2. 后端性能优化:如数据库查询优化、异步处理和负载均衡等。

六、移动端开发

1. 响应式设计:使网页能够适应不同大小和分辨率的设备。

2. 移动应用开发:如使用React Native或Flutter开发原生移动应用。

处理webview内存泄露问题的解决方案

处理webview内存泄露问题的解决方案

处理webview内存泄露问题的解决方案

1. 简介

随着移动应用的普及,Webview作为一种常用的组件,被广泛应用于安卓和iOS平台的开发中。然而,使用Webview时常常会遇到内存泄露的问题,这不仅会导致应用程序的性能下降,还可能引发一系列的崩溃和其他不可预测的行为。本文将介绍一些处理Webview内存泄露问题的解决方案,帮助开发者更好地应对这一挑战。

2. 定位内存泄露问题

在解决Webview内存泄露问题之前,首先需要明确如何定位这些问题。以下是一些常见的方法:

-使用内存分析工具,如AndroidProfiler或Instruments,来监测应用程序的内存使用情况,并查找可能的内存泄露点。

-在应用程序中实施严格的内存管理策略,例如及时释放不再需要的对象,避免产生内存泄露。

-监听内存相关的系统广播,如`onTrimMemory()`方法,以及时处理内存不足的情况。

3. 避免常见的内存泄露情况

3.1 使用静态变量和单例模式的注意事项

对于使用Webview的场景,一些开发者往往会使用静态变量或单例模式保存Webview的实例,以便在多个地方使用。然而,这种做法可能会导致内存泄露。为了避免这种情况,我们可以采取以下措施:

-在使用完Webview后,及时销毁Webview实例,释放占用的资源。

-使用弱引用(WeakReference)来引用Webview,以确保GC(GarbageCollection)可以成功回收不再需要的对象。

3.2 处理Webview与Activity生命周期的关系 Webview与Activity生命周期的不同步也是导致内存泄露的常见原因之一。为了解决这个问题,我们可以采取以下步骤:

-在Activity的`onPause()`方法中调用Webview的`onPause()`方法,以暂停Webview的渲染和JavaScript执行。

-在Activity的`onResume()`方法中调用Webview的`onResume()`方法,以恢复Webview的渲染和JavaScript执行。

DDR SDRAM:SoC低成本高复杂度片外存储器解决方案

DDR SDRAM:SoC低成本高复杂度片外存储器解决方案

几乎所有人都知道,用于桌面计算机和便携计算机的DRAM存储器产品与本白皮书所讨论的片外DRAM完全相同。事实上,全部DRAM产量中的约90%用在计算机上,其它10%当作了系统级芯片(SoC)的片外存储器来使用,这就象将方木钉打入圆孔一样地不适合。随着要求配备与外部存储器接口的SoC设计方案的数量增加,现化化的DDRn SDRAM存储器接口(DDR、DDR2、DDR3)提供了可靠的供货能力、高存储容量、低成本和合理的通道带宽,但却存在使用不便的接口以及复杂控制器方面的问题。

面对内部DRAM阵列所导致的独特指令结构,且要求在设计方案内加入代表当前先进水平的DRAM接口时,SoC设计人员就会将这个任务视为畏途。本白皮书对SDRAM的历史进行了简短介绍,并探讨了实施DDRn控制器和PHY的设计考虑要素,并描述了如何采用完整的IP解决方案来帮助加快产品上市周期和降低成本。

SDRAM历史简介

尽管存储容量上也发生了令人惊奇的进步,但商品DRAM在过去15年来的演化让接口峰值带宽以远大于2000%的系数增加(请参见图1)。虽然任何人都不能违背物理学的基本规律而对基本随机存取操作的延迟现象做出类似程度的提升,但通过增加引脚带宽以及在脉冲猝发下访问数据的能力,能够减少一部分存储器相对于典型处理器对于更高速存储器带宽永无止境的需求之间的差距。在这段发展期内,被称为JC42的美国电子器件工程联合委员会(JEDEC)一直是商品DRAM的行业标准的制订机构。

在1993年下半年,JEDEC发布了最初的SDRAM标准,这个标准最终变成了后来称为“PC100

SDRAM”的标准。通过将SDRAM的时序参数推到实际极限时,PC133 SDRAM出现了,它将通道频率增加到了133MHz,数据速率增加到了133Mbps。

图1 峰值带宽与DRAM类型对比

Peak„峰值带宽

缓存技术在Web中的应用研究

第11卷第4期 2011年8月 潍坊学院学报 Journal of Weifang University Vo1.11 No.4 Ju1.2011 

缓存技术在Web中的应用研究 

王 

(潍坊学院,山东 鑫 

潍坊261061) 

摘要:缓存技术能有效地缩短网络用户取回文档的时间,加快Web服务器的反应速度。文章通过 

分析Web的行为和不同缓存技术的应用,就web中缓存的不同替换策略进行了比较和总结,提出了提高 

缓存效率的最佳方案;然后对缓存内容的更新策略进行了研究,提出了时间、事件和手动三种更新方式,并 

分析了不同方式的最佳使用环境。这些替换和更新策略是缓存真正发挥作用,进而提高Web效率的关键 

所在。 

关键词:缓存;Web;应用;替换;更新 

中图分类号:TP302 文献标识码:A 文章编号:1671--4288(2011)04一OO46—04 

Internet的快速发展使Web服务器必须面对访问者数量快速增加的局面,这就要求网络服务器需要 

具备提供大量并发访问服务的能力。因此,对于提供大负载Web服务的服务器来讲,CPU、T/o处理能力 

很快会成为瓶颈,用户访问的速度会下降,等待网络反应的时间将加长。调查证明,用户愿意等待网站反 

应的平均时间不足1O秒。所以,许多运营商和服务提供商正在斥巨资来提高网络带宽。 

然而,仅仅依靠额外的带宽还不能解决网络等待时间或加速响应缓慢的源服务器的问题。研究发现, 

HTTP协议在等待建立连接方面花费了比传输数据更多的时间,如果能够减少等待的时间,也就可以加速 

网络的反应速度。我们再看一下Web服务器方从接收到一个用户的请求到将用户所要的数据传输给对 

方的过程,对每一个请求,服务器都要先在硬盘上找到相应的对象,某些请求还要访问数据库,然后将数据 

读出,放入内存中,再传输给用户。所以,可以通过减少建立网络连接的次数和加快服务器端的处理速度 

来提高整个网络的反应速度。 缓存技术有效地缩短了网络用户取回文档的时间,加快了Web服务器的反应速度。它通过将内容移 

使用ASP.NET缓存功能创建高性能WEB应用程序

四 应用技术 2006年4月10日 第4期 辱切金骷电肛 

使用ASP.NET缓存功能 

创建高性能WE B应用程序 

◆ 江南计算技术研究所 尹战文谭芙蓉 

摘要:本文介绍了ASP.NET中的缓存功能及如何使用缓存功能创建高性能的Web应用 程序,例举了如何在Visual Studio.NET集成开发环境中使用缓存并简单介绍了ASP.NET中 

其他一些可以提高Web应用程序性能的方法和技术。 关键词:ASP.NET;缓存;Web应用程序 

一、引言 自从Internet诞生以来,开发人员和IT人员就 

一直面临着这样的难题,即如何创建快速响应用户 请求的Web应用程序,尤其是即使服务器正在处 理大量请求时也能快速响应用户请求的web应用 

程序。ASP.NET模型提供了许多内置的性能增强 

功能,缓存是其中一项重要功能。 

二、简介 在实践中,生成高性能、可缩放的Web应用程 序最重要的因素之一是都能够在首次请求时将这 

些项存储在web服务器上或请求流中的其他软件 上,例如代理服务器或浏览器,以避免重新创建满 

足先前请求的信息,尤其是那些需要大量处理器时 间或资源的信息。这就是通常所说的缓存,它允许 

使用多种技术跨HT'FP请求存储页输出或应用程 

序数据并对其进行重复使用,服务器不需要重新创 

建信息,从而节省了时间和资源。 ASP.NET提供了两种可以用来创建高性能 Web应用程序的缓存类型。第一种叫做输出缓存, 

它允许将动态页或用户控件响应存储在输出流(从 

发起服务器到请求浏览器)中任何具备HT'FP 1.1 缓存功能的设备上。当后面的请求发生时,不执行 页或用户控件代码,缓存的输出用于满足该请求。 

在输出缓存中缓存的对象可以是整个页面,也可以 

是部分页。第二种类型的缓存是传统的应用程序数 据缓存,可以使用它以编程方式将任意对象(例如 

数据集)存储到服务器内存,这样,应用程序可以节 省重新创建这些对象所需的时间和资源。 

.Net Framework下的高性能Web开发

浅谈.Net Framework下的高性能Web开发

摘要:文章集中探讨了在 web服务器(特指用于接收用户请求,处理业务逻辑和响应html的服务器)下进行web优化的过程。文章从应用程序级别、页面级别、缓存级别和代码级别四个方面进行讨论。web优化技术远不止文章论述这些,所以,文章建议web开发人员在开发和部署大型或者大数据量web应用时,一定要综合多种技术,在开发、配置、环境等方面力争做到精益求精。最后,文章提出:高性能和可维护性是冲突的,需要找一个平衡点,相关项目干系人要认真权衡。

关键词:web服务器;性能优化;;release版本;debug版本;缓存;页面;编码

中图分类号:tp311 文献标识码:a 文章编号:1009-3044(2013)03-0467-03

前不久,我所在的软件工程实验室完成了“某数字化教学资源平台”(以下简称本系统)的开发工作。该系统是一省级重点课题的研究成功之一。它以我院生物制药技术、药物制剂技术专业主干课程《药物检测技术》和生物技术及应用专业主干课程《食品检测技术》为对象进行教学资源内容开发研究。资源库平台是一个综台性的在线式基于web的远程资源平台,存储着专业核心信息数据,提供信息发布、网上课程、虚拟场景和视频点播等教学服务。

系统已经进入试运行阶段。随着用户量的不断增加,系统管理员通过监控发现大量校内用户和校外用户在使用此系统,系统时常出现service unavailable等错误,系统性能也随之下降,很大程度上影响了系统的使用。系统急需进行改正性维护工作。因为改正性维护的原因就是测试的不彻底、不完全,必然会有一部分错误带到运行阶段。这些隐藏的错误就会在某些特定的使用环境下暴露出来。为了识别和纠正错误,同时提高系统性能,必须马上进行系统的改正性维护和web性能优化工作。

本文集中讨论在 web服务器下的改正和优化,特指用于接收用户请求,处理业务逻辑和响应html的服务器。对于其他方面的改正和优化技术暂不讨论。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档