增加asp.net应用程序性能的20种方法(简单有效)

1.禁用session
假如您用不到session会话跟踪请务必禁用它。您可以在每个asp.net页面中设置如下:
<%@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="WebApplication1.WebForm1"

EnableSessionState="false" %>

当然您可以在web.config应用程序配置设置中设计<sessionState>mode的值为Off.

2.输出缓冲设置
这个方法对你的应用很有帮助.
asp.net应用程序基本上在服务器端批量生成数据,这时必须设置Response.Flush清空缓冲区。这样会减轻服务器端的缓冲区压力。

<%response.buffer=true%>
替换成
<%response.flush=true%>

3.避免服务器端验证.
用客户端验证代替服务器端验证.服务器端数据验证将会大量消耗您的服务器

上的资源,并且会代来大量的页面数据回传.

4.尽量多使用Repater控件,而不要使用DataList, DataGrid, 和 DataView 控件

Asp.net是一个非常好的平台,不幸的是,有很多控件会大量生成html代码,这

样务必会造成性能上的问题.Asp.net repeater 控件非常好用。使用它你将会

额外多写一些代码,但是将来您会发现它带来的好处远比多写代码带来的麻烦。

5.在执行大动作操作时请使用 HttpResponse.IsClientConnected
if (Response.IsClientConnected)
        {
            // If still connected, redirect
            // to another page.
            Response.Redirect("Page2CS.aspx", false);
        }
Response.Redirect有什么错误吗,请继续答案在下面

6.使用HTTPServerUtility.Transfer去替换Response.Redirect.
Redirect(重定向)非常麻烦,它仅用于用于从当前物理服务器跳转到其它服务

器.如果只是在本服务器内页面跳转请使用transfer(转发),这样会减少很多没

有必要的客户端请求.

7.当使用服务器端验证时请务必使用Page.IsValid检查页面是否能过验证
由于您使用了验证控件,你可能认为asp.net会为处理以下的所有事情,是这样吗?

错!当有无效数据传到服务器端时IsVlid属性被改为fasle.在继续处理您的表单之前请检查Page.IsValid属性

8.部署应用程序请使用Release版本
在部署应用程序时请确定您的应用程序应是Release版本而不是Debug版本.假如您认为这无关仅要,你就错了。

如果使用debug模板极容易发生请求超时。部署成Release版本,你将会发现速度有很大的提升.

9.关闭 Tracing(追踪)
Tracing是非常可怕的,你有没有忘记关闭它.假如没用,请确定编辑web.config并且关闭它.它将占用大量您的程序资源
<configuration>
 <system.web>
 <trace enabled="false" pageOutput="false" />
 <trace enabled="false" requestLimit="10" pageOutput="false" traceMode="SortByTime" localOnly="true"/>
 <compilation debug="false" />
 </system.web>
 </configuration>

10.Page.IsPostBack要经常去使用
请确定不要执行太多回传代码,我已经记不清有多少开发者忘记使用检查IsPostBack属性.我在平常开发中会经常使用该属性检查.

11.避免使用异常
避免抛出异常和处理异常。除非在万不得已情况下使用异常处理。

异常是相当的浪费服务器端资源并会大大降低效率.尽量不使用异常处理。

12.设置缓存(Caching)
使用页面快速设置页页Caching和使用ASP.net缓冲API!

有很多东西要学,这个可不是你想像中那么简单.这个有很多策略要采用.什么时候使用缓冲?你使用缓存了吗?

13.设置每一次请求缓存
使用HTTPContect.Items仅要添加一个页面用来设置每一个请求缓存.

14.StringBuilder类的使用
StringBuilder.Append 的速要比String + String速度快的多。

假如您连接的字符串较上可以不使用,当连接次数大于3次上建议使用StringBuilder.Append方法,当然也可以使用String.Concat

15.关闭ViewState
假如你没有使用表单数据回传,那么关闭viewsate。控件回自动打开viewstate这样回减慢你应用程序速度.

public ShowOrdersTablePage()
{
    this.Init += new EventHandler(Page_Init);
}

private void Page_Init(object sender, System.EventArgs e)
{
    this.EnableViewState = false;
}

16.使用分页
.net应用程序分页有利用应用程序效率.每次尽量显示小部分数据,这样会加快页面显示速度。请小心使用混合缓存,请不要设置所有数据在缓存区中。

17.当更新应用程序时使用AppOffline.htm
我非常讨厌asp.net默认错误消息.我是那么的开心假如我再也看不到那些错误消息.确定您的用户也不要看到它.使用AppOffline.htm去替代它。

18.控件使用ControlState而不使用ViewState

19.使用finally方法回收资源
假如你在应用中大量使用数据库连接和访问文件,请确定在用完后关闭它们.

finally块是程序中最后被执行,因此在这里面的代码会确宝一定会被执行,关闭代码一定要在这个方法块中执行

20.请严格按照以上方法执行

(0)

相关推荐

  • ASP.NET Session会导致的性能问题

    而且还是阵发性的,有某个用户投诉慢的时候,你访问却很快,本地又复现不出来?今天你访问了博客园真是太幸运了,也许这里就有你想要的一个答案--假如你的站点动态处理了图片或者其他原本不会动态处理的非网页资源的话.没想到吧,这是Session惹的祸! 我们公司某个站点访问量一直很大,几年前就已经发现客户经常投诉说很慢,而这个问题我们一直都在排查和解决.从线路问题,到数据库连接泄露,到数据库死锁.索引,以及程序的优化问题,我们都查找过,并且解决过.然而,这个问题总还是存在.比如说,在IIS日志中,就会经常

  • ASP.NET(C#) String, StringBuilder 与 StringWriter性能比较

    直观认识:正面交锋  性能测试1:StringBuilder  第 1 轮测试:用时 312.5 毫秒  第 2 轮测试:用时 421.875 毫秒  第 3 轮测试:用时 453.125 毫秒  第 4 轮测试:用时 421.875 毫秒  第 5 轮测试:用时 453.125 毫秒  性能测试2:StringWriter  第 1 轮测试:用时 406.25 毫秒  第 2 轮测试:用时 453.125 毫秒  第 3 轮测试:用时 421.875 毫秒  第 4 轮测试:用时 437.5 

  • ASP.NET性能优化小结(ASP.NET&C#)

    ASP.NET: 一.返回多个数据集 检查你的访问数据库的代码,看是否存在着要返回多次的请求.每次往返降低了你的应用程序的每秒能够响应请求的次数.通过在单个数据库请求中返回多个结果集,可以减少与数据库通信的时间,使你的系统具有扩展性,也可以减少数据库服务器响应请求的工作量. 如果用动态的SQL语句来返回多个数据集,那用存储过程来替代动态的SQL语句会更好些.是否把业务逻辑写到存储过程中,这个有点争议.但是我认为,把业务逻辑写到存储过程里面可以限制返回结果集的大小,减小网络数据的流量,在逻辑层也不

  • 打造基于jQuery的高性能TreeView(asp.net)

    根据我的项目实践情况,主要是几个关键点: 1:支持静态的树,即一次性将全部数据加载到客户端.2:异步树,即一次只加载一级或若干级节点,子节点可以异步加载数据.3:Checkbox树(可能是静态树也可能是异步树),用于选择(如选择组织机构,选择数据字典项)等,最好是能够支持节点级联(这个是难点)4:能够承载大数据量,并性能表现优异5:能够在主流浏览器中运行良好 那我要打造的TreeView就是为了实现这个5个主要指标的. 先来看下效果图 上图是中国行政区域的数据树,总共得节点是3500+. 那么我

  • ASP.NET 提高首页性能的十大做法

    前言 本文是我对ASP.NET页面载入速度提高的一些做法,这些做法分为以下部分: 1.采用 HTTP Module 控制页面的生命周期. 2.自定义Response.Filter得到输出流stream生成动态页面的静态内容(磁盘缓存). 3.页面GZIP压缩. 4.OutputCache 编程方式输出页面缓存. 5.删除页面空白字符串.(类似Google) 6.完全删除ViewState. 7.删除服务器控件生成的垃圾NamingContainer. 8.使用计划任务按时生成页面.(本文不包含该

  • 分享提高ASP.NET Web应用性能的技巧

    在这篇文章中,将介绍一些提高 ASP.NET Web 应用性能的方法和技巧.众所周知,解决性能问题是一项繁琐的工作,当出现性能问题,每个人都会归咎于编写代码的开发人员. 那性能问题到底该如何解决?以下是应用系统发布前,作为 .NET 开发人员需要检查的点. 1.debug=「false」 当创建 ASP.NET Web应用程序,默认设置为「true」.开发过程中,设置为「true」是非常有用多,但在应用程序发布部署时,需将其设置为「false」. <compilation defaultLang

  • asp.net 程序性能优化的七个方面 (c#(或vb.net)程序改进)

    1.使用值类型的ToString方法 在连接字符串时,经常使用"+"号直接将数字添加到字符串中.这种方法虽然简单,也可以得到正确结果,但是由于涉及到不同的数据类型,数字需要通过装箱操作转化为引用类型才可以添加到字符串中.但是装箱操作对性能影响较大,因为在进行这类处理时,将在托管堆中分配一个新的对象,原有的值复制到新创建的对象中. 使用值类型的ToString方法可以避免装箱操作,从而提高应用程序性能. int num=1; string str="go"+num.T

  • ASP.NET页面优化 性能提升8倍的方法

    为了让您对优化的效果有个直观的了解,我准备了下面的测试结果截图: 测试环境: 1. Windows Server 2003 SP2 2. Viaual Studio 2008,使用自带的WebDev.WebServer.EXE运行网站程序. 3. (ThinkPad SL510):Core2 T6670 2.2GHz, 4G内存 二个红框中的数字反映了优化前后的执行时间. 数字表明:优化前后,执行时间有了8倍多的差别. 测试背景 看过了优化结果,再来介绍一下:这个测试到底是在测试什么东西? 现在

  • ASP.NET 高性能分页代码

    最近给分页快搞死,记得之前曾经发过修改DW ASP分页的方法,后来又写过手工打造的ASP分页,现在进入.NET当然要配合存储过程打造纯手工高性能分页了. 为什么会叫做高性能,为什么要手工打造,不使用.NET现有的分页控件呢?这个还要追溯到我修改DW ASP分页的时候,那个我还不怎么懂程序这个东西,只会修修补补,就更不要去谈什么性能问题.当时改的很心烦,接着叫我的私人技术总监张总帮我看看,当时张总就以一种不屑一顾的眼神往着我,说了句话:值得吗? 接着到我手工打造ASP分页,又搞不下去了,张总丢给我

  • 增加asp.net应用程序性能的20种方法(简单有效)

    1.禁用session假如您用不到session会话跟踪请务必禁用它.您可以在每个asp.net页面中设置如下:<%@ Page language="c#" Codebehind="WebForm1.aspx.cs" AutoEventWireup="false" Inherits="WebApplication1.WebForm1" EnableSessionState="false" %>

  • ASP.NET 使用 Dispose 释放资源的四种方法详细介绍

    目录 1. 创建一个实现 IDisposable 接口的类 2. 使用 "using" 语句处理 IDisposable 对象 3. 在请求结束时处理 IDisposable 对象 4. 使用内置的 IoC 容器处理 IDisposable 对象 5. 使用 IHostApplicationLifetime 事件处理 IDependency 对象 ASP.NET 使用 Dispose 释放资源的四种方法 Dispose 和 Finalize 是运行的 .NET 和 .NET Core

  • ASP.NET连接 Access数据库的几种方法

    web.config 第一种方法: <?xml version="1.0" encoding="utf-8"?> <!-- 有关如何配置 ASP.NET 应用程序的详细消息,请访问 http://go.microsoft.com/fwlink/?LinkId=169433 --> <configuration> <appSettings> <add key="AccessConnString"

  • python字符串过滤性能比较5种方法

    python字符串过滤性能比较5种方法比较 总共比较5种方法.直接看代码: import random import time import os import string base = string.digits+string.punctuation total = 100000 def loop(ss): """循环""" rt = '' for c in ss: if c in '0123456789': rt = rt + c retu

  • ASP.NET Core设置URLs的五种方法

    目录 前言 URL格式 前提条件 方法1 使用环境变量 方法2 使用命令行参数 方法3 使用配置文件 方法4 使用UseUrls 方法5 使用Kestrel 优先级 总结 前言 在使用ASP.NET Core 3.1开发时,需要配置服务器监听的端口和协议,官方帮助文档进行简单说明,文档中提到了4种指定URL的方法 设置ASPNETCORE_URLS 环境变量: 使用dotnet --urls 命令行参数: 使用urls作为键进行配置: 使用UseUrls扩展方法: 为便于讲清楚URLs设置方法,

  • python记录程序运行时间的三种方法

    python记录程序运行时间的三种方法              这里提供了python记录程序运行时间的三种方法,并附有实现代码,最后进行比较,大家参考下: 方法1 import datetime starttime = datetime.datetime.now() #long running endtime = datetime.datetime.now() print (endtime - starttime).seconds 方法 2 start = time.time() run_f

  • 调试Python程序代码的几种方法总结

    程序能一次写完并正常运行的概率很小,基本不超过1%.总会有各种各样的bug需要修正.有的bug很简单,看看错误信息就知道,有的bug很复杂,我们需要知道出错时,哪些变量的值是正确的,哪些变量的值是错误的,因此,需要一整套调试程序的手段来修复bug. 第一种方法简单直接粗暴有效,就是用print把可能有问题的变量打印出来看看: # err.py def foo(s): n = int(s) print '>>> n = %d' % n return 10 / n def main(): f

  • C# 编译生成dll文件供程序调用的两种方法

    一.使用vs2017 创建动态dll文件 方法一: 1.新建-项目-类库 2.创建一个.cs文件 写入代码,例如:建立一个Windows窗体 略丑,简单明了... using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System

  • 详解PostgreSQL提升批量数据导入性能的n种方法

    关键字:批量数据导入,数据加载,大量插入,加快,提升速度 多元化选择时代,人生里很多事物都是如此,凡事都没有一成不变的方式和方法.不管白猫黑猫,能抓老鼠的就是好猫,适合自己的就是最好的. 提升批量数据导入的方法亦是如此,没有何种方法是最优的,应用任何方法前根据自己的实际情况权衡利弊,做出选择. 批量导入数据之前,无论采取何种方式,务必做好相应的备份. 导入完成后亦需对相应对象进行ANALYZE操作,这样查询优化器才会按照最新的统计信息生成正确的执行计划. 下面正式介绍提升批量数据导入性能的n种方

  • 详解优化iOS程序性能的25个方法

    1. 用ARC管理内存 ARC(Automatic ReferenceCounting, 自动引用计数)和iOS5一起发布,它避免了最常见的也就是经常是由于我们忘记释放内存所造成的内存泄露.它自动为你管理retain和release的过程,所以你就不必去手动干预了.忘掉代码段结尾的release简直像记得吃饭一样简单.而ARC会自动在底层为你做这些工作.除了帮你避免内存泄露,ARC还可以帮你提高性能,它能保证释放掉不再需要的对象的内存. 现在所有的iOS程序都用ARC了,这条可以忽略. 2. 在

随机推荐