ASP.NET性能优化八条建议

1、数据库访问性能优化
A、尽量减少数据库连接,并充分利用每次数据库连接:连接的创建、打开和关闭是有开销的。可以使用连接池
B、合理使用存储过程:存储过程是存储在服务器端的一组预编译的SQL。使用存储过程可以避免对SQL的多次编译,后续查询可以复用之前的执行计划。另外存储过程可以减少SQL语句网络传输开销
C、优化SQL语句:这个就太多了,如合理使用索引、视图,避免复杂子查询
2、字符串操作性能优化
A、使用值类型的ToString()方法
对不同类型进行 + 连接时,会发生装箱操作转化为引用类型再添加到字符串中。装箱操作会在托管堆中分配一个新对象,将原有的值复制到新对象中,代价很高。使用ToString()方法可以避免装箱,从而提高性能
B、利用StringBuilder类
3、禁用调试模式
4、只要合适,尽量缓存数据和页面输出
5、不要依赖代码中的异常来控制程序正常流程
异常的开销是很大的。所以慎用异常。
6、使用Page.IsPostBack避免往返过程的不必要处理


代码如下:

void Page_Load(Object sender, EventArgs e) // Set up a connection and command
{
if (!Page.IsPostBack) // 第一次加载时才填充数据
{
String query = "select * from Authors where FirstName like '%JUSTIN%'";
myCommand.Fill(ds, "Authors");
myDataGrid.DataBind();
}
}

7、如果不使用会话状态,可以禁用它或者设置只读
A、若要禁用页的会话状态,请将 @ Page 指令中的 EnableSessionState 属性设置为false。例如:


代码如下:

<%@ Page EnableSessionState="false" %>

B、注意如果页需要访问会话变量,但不打算创建或修改它们,则将 @ Page 指令中的 EnableSessionState 属性设置为 ReadOnly。
8、利用成熟的工具进行性能测试

(0)

相关推荐

  • ASP.NET性能优化之局部缓存分析

    在网站的开发过程中,经常碰到的一类需求场景是: 1:页面含热点新闻,热点新闻部分需要10分钟更新一次,而整个页面的其它部分1天内都不会变动: 2:首页的某个BANNER需要显式:欢迎***: 上面场景中的1,如果整个页面的缓存失效都定为10分钟,则势必增加性能开销,所以最好的策略是页面的不同部分采用不同的缓存失效时长.对于场景2也一样,我们不应该为了迁就某个BANNER不能应用缓存,就让整个页面都不支持缓存. 可以说,如果我们在开发网站过程中的缓存策略是不支持页面局部缓存的,整个架构就是不合理的

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

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

  • ASP.NET技巧:同时对多个文件进行大量写操作对性能优化

    我自己的一个项目,需要同时对65536个文件进行多次写操作. 如果先全部打开所有的文件,然后重复写,最后关闭所有的文件.那么第一次写操作全部完成需要16分钟左右,而第二次就需要40分钟了.没有继续测试了. for (int i = 0; i < 65536; i++)            {                fileStream[i] = new FileStream(buffDir+"\\"+ i.ToString() + ".dat", F

  • ASP.NET 性能优化之反向代理缓存使用介绍

    到目前为止,我们讨论了把缓存存放在ASP.NET的输出缓存中(内存和硬盘),以及浏览器缓存中,而大型站点的另一种常用做法是将缓存部署在反向代理服务器上,这类缓存我们通常称之为反向代理缓存,比如Squid和Varnish.这两款软件通常都部署在非WINDOWS平台上,对于Windows平台上的Asp.net来说,其实一样能使用,我们完全可以把反向代理软件部署在LINUX上,然后代理会路由到后台的WINDOWS WEB(IIS)服务器.总之,非WINDOWS的世界很精彩. 当然,无论是squid还是

  • ASP.NET性能优化之构建自定义文件缓存

    现在,借助于.NET4.0中的OutputCacheProvider,我们可以有多种选择创建自己的缓存.如,我们可以把HTML输出缓存存储到memcached分布式集群服务器,或者MongoDB中(一种常用的面向文档数据库,不妨阅读本篇http://msdn.microsoft.com/zh-cn/magazine/gg650661.aspx).当然,我们也可以把缓存作为文件存储到硬盘上,考虑到可扩展性,这是一种最廉价的做法,本文就是介绍如果构建自定义文件缓存. 1:OutputCachePro

  • ASP.NET性能优化之让浏览器缓存动态网页的方法

    OutputCache是针对所有访问服务器资源的用户,本篇要介绍的浏览器缓存则是针对单个用户,让浏览器在我们的控制下彻底不持续访问服务器上的动态内容,也就是我们要让浏览器变成我们的缓存机制中的一部分,在某些特定的场景下最大化地提升ASP.NET站点的性能.如果说OutputCache是从广度上提升并发效率,则浏览器缓存是从深度上提升效率. 一:HTTP头简介 1.1浏览器第一次请求 假设我们请求一个URL地址,譬如我服务器上的一个静态页面http://192.168.0.77/luminji2/

  • 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中常用的优化性能的方法

    1. 数据库访问性能优化   数据库的连接和关闭  访问数据库资源需要创建连接.打开连接和关闭连接几个操作.这些过程需要多次与数据库交换信息以通过身份验证,比较耗费服务器资源.ASP.NET中提供了连接池(Connection Pool)改善打开和关闭数据库对性能的影响.系统将用户的数据库连接放在连接池中,需要时取出,关闭时收回连接,等待下一次的连接请求.  连接池的大小是有限的,如果在连接池达到最大限度后仍要求创建连接,必然大大影响性能.因此,在建立数据库连接后只有在真正需要操作时才打开连接,

  • Asp.Net性能优化技巧汇总

    本文搜集汇总了Asp.net性能优化的各种技巧,对于Asp.Net开发人员有很好的参考借鉴价值.具体内容如下: 一.选择会话状态存储方式 在Webconfig文件配置: <sessionState mode="???" stateConnectionString="tcpip=127.0.0.1:42424" sqlConnectionString="data source=127.0.0.1;Trusted_Connection=yes"

  • ASP.NET性能优化之减少请求

    这种机制存在的性能损耗,就是服务器的ASP.NET仍旧要接收请求,处理请求.此篇所讲的机制是让浏览器自己去决定是否去读缓存,这样就彻底消灭了针对服务器的请求. 1:减少静态页面请求 要让静态页面支持这个需求,我们需要用到http头中的Cache-Control: max-age.值得注意的是Cache-Control是在HTTP/1.1协议下的标识,它是HTTP/1.0协议中的Expires的升级.为了让静态页支持Cache-Control,一种方案是在IIS中进行设置,如下,我在需要静态缓存的

随机推荐