人的差别在于业余时间,而一个人的命运决定于晚上8点到10点之间。 北京安全测试精英QQ群:164265622 北京白盒测试精英QQ群:164265999 北京性能测试精英QQ群:164266156 北京自动化测试精英群:212723528 北京软件测试精英QQ群:86920845

c#性能优化方案(三)

上一篇 / 下一篇  2011-11-07 16:07:38 / 个人分类:性能测试

22.避免到服务器的不必要的往返过程 

  虽然您很可能希望尽量多地使用Web窗体页框架的那些节省时间和代码的功能,但在某些情况下却不宜使用ASP.NET服务器控件和回发事件处理。 

  通常,只有在检索或存储数据时,您才需要启动到服务器的往返过程。多数数据操作可在这些往返过程间的客户端上进行。例如,从HTML窗体验证用户输入经常可在数据提交到服务器之前在客户端进行。通常,如果不需要将信息传递到服务器以将其存储在数据库中,那么您不应该编写导致往返过程的代码。 

  如果您开发自定义服务器控件,请考虑让它们为支持ECMAScript.的浏览器呈现客户端代码。通过以这种方式使用服务器控件,您可以显著地减少信息被不必要的发送到Web服务器的次数。 

  使用Page.IsPostBack避免对往返过程执行不必要的处理 

  如果您编写处理服务器控件回发处理的代码,有时可能需要在首次请求页时执行其他代码,而不是当用户发送包含在该页中的HTML窗体时执行的代码。根据该页是否是响应服务器控件事件生成的,使用Page.IsPostBack属性有条件地执行代码。例如,下面的代码演示如何创建数据库连接和命令,该命令在首次请求该页时将数据绑定到DataGrid服务器控件。

void Page_Load(Object sender, EventArgs e) 

{ 

// Set up a connection and command here. 

if (!Page.IsPostBack) 

{ 

String query = "select * from Authors where FirstName like '%JUSTIN%'"; 

myCommand.Fill(ds, "Authors"); 

myDataGrid.DataBind(); 

} 

}


  由于每次请求时都执行Page_Load事件,上述代码检查IsPostBack属性是否设置为false。如果是,则执行代码。如果该属性设置为true,则不执行代码。 

  注意 如果不运行这种检查,回发页的行为将不更改。Page_Load事件的代码在执行服务器控件事件之前执行,但只有服务器控件事件的结果才可能在输出页上呈现。如果不运行该检查,仍将为Page_Load事件和该页上的任何服务器控件事件执行处理。 

23.当不使用会话状态时禁用它 

  并不是所有的应用程序或页都需要针对于具体用户的会话状态,您应该对任何不需要会话状态的应用程序或页禁用会话状态。 

  若要禁用页的会话状态,请将@ Page指令中的EnableSessionState属性设置为false。例如:

<%@ Page EnableSessionState="false" %>

  注意 如果页需要访问会话变量,但不打算创建或修改它们,则将@ Page指令中的EnableSessionState属性设置为ReadOnly 

  还可以禁用XML Web services方法的会话状态。有关更多信息,请参见使用ASP.NETXML Web services客户端创建的XML Web services 

  若要禁用应用程序的会话状态,请在应用程序Web.config文件的sessionstate配置节中将mode属性设置为off。例如:

<sessionstate mode="off" />


24.仔细选择会话状态提供程序 

  ASP.NET为存储应用程序的会话数据提供了三种不同的方法:进程内会话状态、作为Windows服务的进程外会话状态和SQL Server数据库中的进程外会话状态。每种方法都有自己的优点,但进程内会话状态是迄今为止速度最快的解决方案。如果只在会话状态中存储少量易失数据,则建议您使用进程内提供程序。进程外解决方案主要用于跨多个处理器或多个计算机缩放应用程序,或者用于服务器或进程重新启动时不能丢失数据的情况。有关更多信息,请参见ASP.NET状态管理。 

25.不使用不必要的Server Control 

  ASP.net中,大量的服务器端控件方便了程序开发,但也可能带来性能的损失,因为用户每操作一次服务器端控件,就产生一次与服务器端的往返过程。因此,非必要,应当少使用Server Control 

26. ASP.NET应用程序性能测试 

  在对ASP.NET应用程序进行性能测试之前,应确保应用程序没有错误,而且功能正确。具体的性能测试可以采用以下工具进行: 

  Web Application Strees Tool (WAS)Microsoft发布的一个免费测试工具,可以从http://webtool.rte.microsoft.com/上下载。它可以模拟成百上千个用户同时对web应用程序进行访问请求,在服务器上形成流量负载,从而达到测试的目的,可以生成平均TTFB、平均TTLB等性能汇总报告。 

  Application Center Test (ACT)是一个测试工具,附带于Visual Studio.NET的企业版中,是Microsoft正式支持的web应用程序测试工具。它能够直观地生成图表结果,功能比WAS多,但不具备多个客户机同时测试的能力。 

  服务器操作系统"管理工具"中的"性能"计数器,可以对服务器进行监测以了解应用程序性能。 

结论 

  对于网站开发人员来说,在编写ASP.NET应用程序时注意性能问题,养成良好的习惯,提高应用程序性能,至少可以推迟必需的硬件升级,降低网站的成本。

 

 


TAG:

 

评分:0

我来说两句

Open Toolbar