易截截图软件、单文件、免安装、纯绿色、仅160KB

asp.net性能优化总结 心如止水

1. C#语言方面
1.1 垃圾回收
 垃圾回收解放了手工管理对象的工作,提高了程序的健壮性,但副作用就是程序代码可能对于对象创建变得随意。
 1.1.1 避免不必要的对象创建
 由于垃圾回收的代价较高,所以C#程序开发要遵循的一个基本原则就是避免不必要的对象创建。以下列举一些常见的情形。
 1.1.1.1 避免循环创建对象 ★
 如果对象并不会随每次循环而改变状态,那么在循环中反复创建对象将带来性能损耗。高效的做法是将对象提到循环外面创建。
 1.1.1.2 在需要逻辑分支中创建对象
 如果对象只在某些逻辑分支中才被用到,那么应只在该逻辑分支中创建对象。
 1.1.1.3 使用常量避免创建对象
 程序中不应出现如 new Decimal(0) 之类的代码,这会导致小对象频繁创建及回收,正确的做法是使用Decimal.Zero常量。我们有设计自己的类时,也可以学习这个设计手法,应用到类似的场景中。
 1.1.1.4 使用StringBuilder做字符串连接
1.1.2 不要使用空析构函数 ★
 如果类包含析构函数,由创建对象时会在 Finalize
队列中添加对象的引用,以保证当对象无法可达时,仍然可以调用到 Finalize
方法。垃圾回收器在运行期间,会启动一个低优先级的线程处理该队列。相比之下,没有析构函数的对象就没有这些消耗。如果析构函数为空,这个消耗就毫无意
义,只会导致性能降低!因此,不要使用空的析构函数。
 在实际情况中,许多曾在析构函数中包含处理代码,但后来因为种种原因被注释掉或者删除掉了,只留下一个空壳,此时应注意把析构函数本身注释掉或删除掉。
 1.1.3 实现 IDisposable 接口
 垃圾回收事实上只支持托管内在的回收,对于其他的非托管资源,例如 Window GDI 句柄或数据库连接,在析构函数中释放这些资源有很大问题。原因是垃圾回收依赖于内在紧张的情况,虽然数据库连接可能已濒临耗尽,但如果内存还很充足的话,垃圾回收是不会运行的。
 
C#的 IDisposable 接口是一种显式释放资源的机制。通过提供 using 语句,还简化了使用方式(编译器自动生成 try ...
finally 块,并在 finally 块中调用 Dispose 方法)。对于申请非托管资源对象,应为其实现 IDisposable
接口,以保证资源一旦超出 using 语句范围,即得到及时释放。这对于构造健壮且性能优良的程序非常有意义!
为防止对象的 Dispose
方法不被调用的情况发生,一般还要提供析构函数,两者调用一个处理资源释放的公共方法。同时,Dispose 方法应调用
System.GC.


相关文档:

asp.net分页

1 using System;
  2 using System.Collections.Generic;
  3 using System.Collections.Specialized;
  4 using System.Linq;
  5 using System.Web;
  6 using System.Text;
  7 u ......

ASP.net中的validaterequest

这个属性是用来验证客户端用户的输入的,用来验证用户的输入中是否有危险字符的,这个属性的默认值为true,微软之所以这么做是为了提高asp.net程序的安全性,所以很多程序员即使不知道怎么来防御黑客的攻击,asp.net的一些默认属性等内容已经对安全进行了控制,这也是为什么asp.net的程序相对来说比较安全的原因!
  既然这个属 ......

asp.net发布网站时三个选项的问题


asp.net发布网站时三个选项的问题
 
发布网站的时候有三个选项: 
第一个选项指定发布后是不是可以修改aspx文件,如果勾选,则发布后的网站行为基本与ASP.NET   1.1一致,只要没有增删修改控件,可以直接在服务器上修改aspx文件不用重新发布网站。 
第二个选项指定是不是将每个aspx文件都编 ......

ASP.NET AJAX 实现登陆无刷新/动态添加服务器控件

在最近开始将AJAX技术加入到日常的开发工作中。我在最近写了个AJAX的无刷新登陆且动态添加服务器控件的工作,我将此功能告诉大家希望对大家的工作有所帮助。如果大家有更好的方法且愿意在此留言让我也可以分享到你的成果。
首先在页面中的HTML标记中加入控件UpdatePanel和两个Textbox一个Button:
<asp:UpdatePanel ID ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号