【原创】构建高性能ASP.NET站点 第六章—性能瓶颈诊断与初步调优(下前篇)—简单的优化措施

原文: 【原创】构建高性能ASP.NET站点 第六章—性能瓶颈诊断与初步调优(下前篇)—简单的优化措施

构建高性能ASP.NET站点 第六章性能瓶颈诊断与初步调优(下前篇)简单的优化措施html

    前言:本篇给出一些在部署ASP.NET站点时采用的简单的优化措施。同时很也很是的感谢朋友对昨天发的文章的支持,本篇的内容很少,也比较的简单!前端

   

    本篇议题以下:   web

    识别和分析服务端的性能瓶颈()浏览器

   内存(前篇)缓存

   缓存(前篇)服务器

    CPU(前篇)架构

   处理请求线程(前篇)dom

提升性能的一些简单改进措施(下)ide

         部署优化(前篇)工具

         减小没必要要回传(前篇)

         减小没必要要的请求(后篇)

        

 

 

  系列文章连接:

  构建高性能ASP.NET站点 开篇

  构建高性能ASP.NET站点之一 剖析页面的处理过程(前端)

  构建高性能ASP.NET站点之二 优化HTTP请求(前端)

  构建高性能ASP.NET站点之三 细节决定成败

  构建高性能ASP.NET站点 第五章—性能调优综述(前篇)

  大型高性能ASP.NET系统架构设计  

  构建高性能ASP.NET站点 第五章—性能调优综述(中篇)

  构建高性能ASP.NET站点 第五章—性能调优综述(后篇)

  构建高性能ASP.NET站点 第六章—性能瓶颈诊断与初步调优(上篇)—识别性能瓶颈

  构建高性能ASP.NET站点 第六章—性能瓶颈诊断与初步调优(下前篇)—简单的优化措施

  构建高性能ASP.NET站点 第六章—性能瓶颈诊断与初步调优(下后篇)—减小没必要要的请求

  构建高性能ASP.NET站点 第七章 如何解决内存的问题(前篇)—托管资源优化—垃圾回收机制深度剖析

  构建高性能ASP.NET站点 第七章 如何解决内存的问题(前中篇)—托管资源优化—监测CLR性能

 

 

 

 

部署优化

咱们都知道,不一样的部署方式对站点的性能是有影响的,可能有些朋友已经知道了这点,无论怎样,咱们这里仍是详细系统的讲述一下这个问题,熟悉的朋友权当回顾J

 

Release方式编译项目

若是咱们的项目是用Project的方式创建的,也就是说:咱们的站点包含在一个Solution解决方案中,那么在发布以前,编译项目的时候,采用release方式,这种方式会减小CPU的使用率。由于采用debug的方式发布,编译器会编译后的代码中加入不少的信息,如调试信息等。

 

操做步骤:

1.       VS中,选择Build | Configuration Manager”.以下:

 

 

2.       Active Solution Configuration下拉框如今””Release”,而后Close”.那么Solution就以Release方式编译。(其实使得Solution编译为Release的方法不少,例如在Solution上面右击属性,而后去设置也是能够的)

 

 

 

如今虽然SolutionRelease方式了,可是若是咱们去查看这个Solution下面的ASP.NET站点程序的config文件,发现仍是deubg方式的。那么咱们在发布站点的时候,须要手动的去修改成release

 

:若是Solution是以debug方式编译,即便web.config设置了release,最后发布的站点的代码仍是方式的。

 

站点发布

 

发布的步骤以下:

1.       修改web.config配置以下:

 

 

 

2.       在站点上面右键选择Publish”.以下:

 

 

    减小没必要要的回传

    咱们都知道,从服务端到客户端的回传每次都是须要花费必定的时间的,并且加长了用户等待的时间。因此有些回传则是可免则免。 

Server.Transfer Vs Response.Redirect

     若是咱们须要在服务端把用户定向到另外的一个页面,那么考虑一下:尽可能使用Server.Transfer,而不是使用Response.Redirect

   由于当使用Response.Redirect的时候,服务端会向客户端的浏览器发送一个响应:告诉浏览器去加载转向的那个页面。而后浏览器再次发送请求到服务端去请求另外的那个页面。

 

   当咱们使用Server.Transfer的时候,服务端就马上执行跳转。这样作的一个很差的地方可能就是:此时请求的是A.aspx,其实服务端已经跳转到了B.aspx页面,可是浏览器上面的Url仍是显示的A.aspx

 

     当使用Server.Transfer须要注意:肯定每次访问A页面都须要跳转到B页面的时候,就是用Server.Transfer。例如,拿博客园来举例,当用户在没有登陆的时候想对正在阅读的一篇文章评论,那么此时,页面就会跳转到Login的登录页面,登录以后,页面就跳转到以前看文章的那个页面,而后写评论。此时的这个跳转就不适合用Server.Transfer,而采用Response.Redirect。若是无论用户在哪里,只要用户登录,那么老是跳到一个固定的页面,那么就可使用Server.Transfer

 

     还有就是Server.Transfer毕竟会消耗服务端的资源,使用的时候要注意。

     经过上面能够看出:调优原本就是一个折中的过程,不是绝对的。调优最后说到底就是时空转换时间换空间,空间换时间        

 

    声明站点的默认页面

    当咱们请求一个站点的时候,如http://domain/folderIIS会自动进行一些重定向到http://domain/folder/。同时,http.sys也不会把没有声明默认页面的站点的默认首页加入到内核的缓存中(可能说的有点的绕),例如,若是在程序中,咱们设置站点的默认页面时Default.aspx,可是咱们在部署到IIS的时候,没有配置Default.aspx就是站点的默认页面,那么这个页面的内容不会被http.sys缓存到内核中。因此为了不IIS重定向和容许http.sys缓存页面,咱们在IIS中要配置站点的默认页面(或者每次在浏览器中输入http://domain/folder/default.aspx,可是咱们不能控制用户的行为,因此这招这几乎不可能)

 

    永久跳转相关话题

    若是咱们站点的某个页面过时了或者再也不用了,那么咱们就能够采用301永久跳转。当服务端向客户端发出301响应的时候,浏览器和代理都会去更新他们的缓存(若是以前的旧页面采用了缓存),并且搜索引擎也会采用新的页面。

     要让服务端向客户端发送301响应,以下的方式:

1.代码:

 

Response.StatusCode  =   301 ;
Response.AddHeader(
" Location " " NewPage.aspx " );
Response.End();

 

   ASP.NET 4.0 及之后的版本:

Response.RedirectPermanent( " NewPage.aspx " );

  

2. IIS配置

a)         IIS 6配置

1.       IIS中站点中,选中你想跳转的文件或者目录。

2.       选中”A redirection to a URL”

3.       而后输入你想跳转到的页面。

4.       而后选中”The exact url entered above””A permanent redirect for this resource”

b)         IIS 7

Server 2008上面

1.       打开开始”->”管理工具”->”服务器管理

 

2.       IIS上面添加角色服务

 

3.       常见Http功能下面选中”Http重定向

4.       而后安装。

 

Win7 上面,以下:

 

而后,在咱们的站点的web.config配置以下:

 

代码
< configuration >
  
< location  path ="OldPage.aspx" >
    
< system.webServer >
       <httpRedirect enabled="true" destination="NewPage.aspx" httpResponseStatus="Permanent" />
    
</ system.webServer >
  
</ location >
</ configuration >

 

 

    今天就到这里,多谢各位!

相关文章
相关标签/搜索