构建高性能ASP.NET站点 第六章—性能瓶颈诊断与初步调优(下前篇)—简单的优化措施
    前言:本篇给出一些在部署ASP.NET站点时采用的简单的优化措施。
  
    本篇议题如下:  
    识别和分析服务端的性能瓶颈(上)
   内存(前篇)
   缓存(前篇)
    CPU(前篇)
   处理请求线程(前篇)
提高性能的一些简单改进措施(下)
         部署优化(前篇)
减少不必要回传(前篇)
减少不必要的请求(后篇)
部署优化
我们都知道,不同的部署方式对站点的性能是有影响的,可能有些朋友已经知道了这点,不管怎样,我们这里还是详细系统的讲述一下这个问题,熟悉的朋友权当回顾J。
 
Release方式编译项目
如果我们的项目是用Project的方式建立的,也就是说:我们的站点包含在一个Solution解决方案中,那么在发布之前,编译项目的时候,采用release方式,这种方式会减少CPU的使用率。因为采用debug的方式发布,编译器会编译后的代码中加入很多的信息,如调试信息等。
操作步骤:
1.       在VS中,选择” Build | Configuration Manager”.如下:
2.       在”Active Solution Configuration”下拉框现在””Release”,然后”Close”.那么Solution就以Release方式编译。(其实使得Solution编译为Release的方法很多,例如在Solution上面右击”属性”,然后去设置也是可以的)
现在虽然Solution是Release方式了,但是如果我们去查看这个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/folder,IIS会自动进行一些重定向到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>
今天就到这里,多谢各位!

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

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

    构建高性能ASP.NET站点 第五章-性能调优综述(中篇) 前言:本篇主要讲述用一些简单的工具来分析一些与站点性能有关的数据,在上一篇文章中,我们讨论了一下性能调优的一般过程,本篇就开始介绍一些方法和 ...

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

    构建高性能ASP.NET站点 第五章-性能调优综述(后篇) 前言:本篇主要讲述如何根据一些简单的工具和简单的现象来粗布的定位站点的性能问题. 本章的议题如下: 性能调优的一般过程 利用分析工具分析页面 ...

  3. 构建高性能ASP.NET站点 第七章 如何解决内存的问题(后篇)—托管资源优化—监常用优化措施...

    构建高性能ASP.NET站点 第七章 如何解决内存的问题(后篇)-托管资源优化-监常用优化措施   前言:有段时间没有写这个系列了,希望大家见谅,本篇主要将会介绍一些常用的CLR优化措施. 本篇的议题 ...

  4. 【原创】构建高性能ASP.NET站点 开篇

    原文:[原创]构建高性能ASP.NET站点 开篇 构建高性能ASP.NET站点 开篇 前言:有段时间没有写ASP.NET的东西了,心里总是觉得缺少了什么,毕竟自己对ASP.NET还是情有独钟的. 在本 ...

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

    构建高性能ASP.NET站点 第五章-性能调优综述(中篇) 前言:本篇主要讲述用一些简单的工具来分析一些与站点性能有关的数据,在上一篇文章中,我们讨论了一下性能调优的一般过程,本篇就开始介绍一些方法和 ...

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

    前言:有段时间没有写ASP.NET的东西了,心里总是觉得缺少了什么,毕竟自己对ASP.NET还是情有独钟的. 在本系列文章中,准备比较全面的讲述ASP.NET的性能的优化,从前台到后台,以后本列文也看 ...

  7. 构建高性能ASP.NET站点 网站优化需要考虑的方面

    导读:作者燕洋天写了一系列关于ASP.NET的文章.我有段时间没有写ASP.NET的东西了,心里总是觉得缺少了什么,毕竟自己对ASP.NET还是情有独钟的.在本系列文章中,准备比较全面的讲述ASP.N ...

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

    上一篇文章主要讲述了请求一个页面的过程,同时也提出了在这个过程中的一些优化点,本篇就开始细化页面的请求过程并且提出优化的方案.同时,在上篇文章中,不少朋友也提出了一些问题,在本篇中也对这些问题给出了回 ...

  9. 构建高性能ASP.NET站点

    http://www.cnblogs.com/yanyangtian/archive/2011/02/10/1950493.html 转载于:https://www.cnblogs.com/CoolC ...

最新文章

  1. 在 Android Studio 2.2 中愉快地使用 C/C++
  2. swoole 简单的聊天室
  3. “面试不败计划”:面试题基础二
  4. 分贝(BD)的含义以及关系(有助于深刻理解)
  5. 谈谈对python 和其他语言的区别_谈谈Python和其他语言的区别
  6. 更新和插入的并发问题_mysql经典面试题:如何读写分离?主从原理是啥?同步的延时问题...
  7. 计算机网络之物理层:5、数据的交换方式(电路交换、报文交换、分组交换)
  8. 人走茶凉!三星关闭最后一家中国手机工厂 因为打不过其他国产厂商?
  9. Raspberry Pi 构建一个飞机观察器
  10. QCon北京2015:移动开发最佳实践专题前瞻
  11. mysql查看锁表锁进程
  12. 读《人月神话》的感想(一)——关于组织结构沟通能力优劣的量化
  13. office2019专业增强版64位和32位安装包收集整理
  14. allennlp.modules.span_extractors
  15. CSDN数据泄密凸显数据安全黑洞 飞客提示注意数据库保护
  16. java html转word的坑 poi样式丢失还乱码
  17. $.ajax()方法详解
  18. 柯洁夺斗地主全国冠军!斗地主可以排解输棋痛苦”
  19. libVLC 事件机制
  20. 小功能⭐️Unity2018 Shader Graph——全息影像、物体消融

热门文章

  1. 目标检测排行榜_3D领域重大突破!大华股份人工智能取得KITTI Object 3D车辆检测排行榜第一名...
  2. 信息安全技术网络安全等级保护定级指南_行业标准 |报业网络安全等级保护定级参考指南V2.0发布,明确保护对象、定级要求...
  3. mysql 值到99999后不增值了_MySQL必知必会3
  4. ae中心点重置工具_AE中图形绘制的6大技巧,简单易操作
  5. python求第n个质数_找到第n个质数:麻木
  6. php mcrypt取消,php – Mcrypt弃用后如何解密?
  7. 1、MapReduce理论简介
  8. 互联网晚报 | 3月27日 星期日 | 东航已正式启动理赔工作;第二部黑匣子数据存储单元外观较为完好,其他部分损毁严重...
  9. 2022年中国酒店业数字化转型趋势报告
  10. 百度平台K12人群洞察报告