ASP.NET性能与缓存

时间:2005/8/4 15:42:50      阅读:969          
        今天从MS的网站下载了一个关于“ASP.NET性能与缓存”的讲座演示看,并针对我原来曾写过的程序进行了一些修改,使程序的性能有了一定的提高。
学习内容:
        ASP.NET的性能状况
        性能问题与优化原则
        性能提高的技巧
        ASP.NET输出缓冲
 
性能提高的技巧1,如下代码:
 
避免不必要的执行操作,如:Page_Load 和 IsPostBack
 
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        '在此处放置初始化页的用户代码
            Dim query As String =  "select * from Authors where FirstName like '%JUSTIN%'"
            myCommand.Fill(ds, "Authors")
            myDataGrid.DataBind()
End Sub
 
Private  Sub Button_Click(ByVal sender As Object, ByVal e As EventArgs)
        Dim query As String =  "select * from Authors where FirstName like '%BRAD%'"
        myCommand.Fill(ds, "Authors")
        myDataGrid.DataBind()
End Sub
 
以上代码看起来没什么问题,但实际上程序在运行当中,点击了Button按键时程序就会运行Button_Click下的代码,页面重新加载后再次执行Page_Load中的代码(Page_Load 是页面每次加载时都会被执行),使得页面运行了多次Page_Load中的代码,再看修改后的程序如下:
 
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        '在此处放置初始化页的用户代码
        If Not Page.IsPostBack Then
            Dim query As String =  "select * from Authors where FirstName like '%JUSTIN%'"
            myCommand.Fill(ds, "Authors")
            myDataGrid.DataBind()
        End If
 End Sub
 
Private  Sub Button_Click(ByVal sender As Object, ByVal e As EventArgs)
        Dim query As String =  "select * from Authors where FirstName like '%BRAD%'"
        myCommand.Fill(ds, "Authors")
        myDataGrid.DataBind()
End Sub
 
在Page_Load中利用IsPostBack 进行判断程序是否是第一次运行,以避免了Page_Load中的程序多次运行,改善了程序的性能。
 
性能提高的技巧2:
 
关闭不必要的Session状态:,在一些页面上完全没有使用到Session的时候应当把Session关闭,在页面的HTML代码模式下增加一句
<%@ Page EnableSessionState="false" %>,把Session状态关闭。

注意使用Server Control
不必要时可以不使用Server Control
不必要时可以关闭ViewState
<asp:datagrid EnableViewState="false“ runat="server"/>
<%@ Page EnableViewState="false" %>
 
还有就是不要用Exception控制程序流程、使用ASP.NET Output Cache缓冲数据、关闭ASP.NET的Debug模式、使用存储过程数据访问、只读数据访问不要使用DataSet,使用SqlDataReader代替DataSet等等,这些因本人也是正在研究学习中,所以就暂时不写这么多了。
评论
  • Re:ASP.NET性能与缓存  (2006/8/5 9:49:49) by 飘萍 
    asp.net的缓存我还没学会,呵呵。
  • Re:ASP.NET性能与缓存  (2009/3/17 15:06:59) by ylp1588 
    关闭不必要的状态这一点至关重要,比如一个页面包含一GridView控件并且只是用来显示数据,如果不关闭其状态,那么显示的数据将会增加一倍。
标 题:
 
姓 名:
 
主 页:

验证码:

评论:
 

Because of the cache,you may see your comments several minutes later.