性能优化小结

发表于:2010-4-29 11:06

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:未知    来源:51Testing软件测试网采编

分享:

  1.   使用存储过程。(如果在程序里用exec 存储过程参数,这样执行似乎并没有快多少)

  在数据库里是预编译的,也不需要在字符串传输上花费大量时间。防sql注入攻击。

  2.   尽量优化数据库语句,使逻辑尽量简单。

  @  还有就是在使用函数时    charindex   >like > padindex  效率依次递减。

  @查询字段是否包含在以,分隔的字段串时,最好不要用in  速度非常慢。  还有好多,可以总结的,这里就不再描述了。

  3.   EnableViewState(页面的视图状态)。如果无特殊要求设置为false。

  使用ViewState ,每个对象都必须先序列化到 ViewState 中,然后再通过回传进行反序列化,因此使用 ViewState是没有代价的。尽量减少使用对象,如果可能,尽量减少放入 ViewState 中的对象的数目。下面情况基本上可以禁用viewstate:

  (1)页面控件 (.ascx)

  (2)页面不回传给自身。

  (3)无需对控件的事件处理。

  (4)控件没有动态的或数据绑定的属性值(或对于每个postpack都在代码中处理)

  单个页面或每个页面都禁用 ViewState,如下所示:

  单个页面:<%@ Page EnableViewState="False" %>

  每个页面:在 web.config 中 <Pages EnableViewState="false" />

  EnableSessionState保持默认值即可(如果页面用到sessionstate它才会占用资源)。

  EnableViewStateMac如果无安全上的特殊要求,保持默认值。

  4.   Pagelayout.页面布局模型。建议使用Flowlayout(元素不带绝对定位属性添加)。Gridlayout(绝对定位属性)由于采用绝对定位,将会比Flowlayout生产更多的代码,主要是控件的定位信息,radiobuttonlist 和 checkboxlist等。

  5.   项目发布的时候切记解除页面的Debug状态

  6.   尽量选择html控件。能在客户端实现的功能就在客户端实现(熟练掌握javascript),减少服务器的压力。

  数据控件选择顺序:Repeater、DataList、DataGrid

  7.   在建立数据库连接后只有在真正需要操作时才打开连接,使用完毕后马上关闭,从而尽量减少数据库连接打开的时间,避免出现超出连接限制的情况。

  8.   字符串操作性能优化

  使用值类型的ToString方法

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

  运用StringBuilder类

  String类对象是不可改变的,对于String对象的重新赋值在本质上是重新创建了一个String对象并将新值赋予该对象,其方法ToString对性能的提高并非很显著。在处理字符串时,最好使用StringBuilder类,其.NET 命名空间是System.Text。该类并非创建新的对象,而是通过Append,Remove,Insert等方法直接对字符串进行操作,通过 ToString方法返回操作结果。

21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号