asp.net性能的技巧(2)

时间:2007-10-07 21:55:00 


  4. 一定要禁用调试模式

  在部署生产应用程序或进行任何性能测量之前,始终记住禁用调试模式。如果启用了调试模式,应用程序的性能可能受到非常大的影响。


  5. 对于广泛依赖外部资源的应用程序,请考虑在多处理器计算机上启用网络园艺

  ASP.NET 进程模型帮助启用多处理器计算机上的可缩放性,将工作分发给多个进程(每个 CPU 一个),并且每个进程都将处理器关系设置为其 CPU。此技术称为网络园艺。如果应用程序使用较慢的数据库服务器或调用具有外部依赖项的 COM 对象(这里只是提及两种可能性),则为您的应用程序启用网络园艺是有益的。但是,在决定启用网络园艺之前,您应该测试应用程序在网络园中的执行情况。


  6. 只要可能,就缓存数据和页输出

  ASP.NET 提供了一些简单的机制,它们会在不需要为每个页请求动态计算页输出或数据时缓存这些页输出或数据。另外,通过设计要进行缓存的页和数据请求(特别是在站点中预期将有较大通讯量的区域),可以优化这些页的性能。与 .NET Framework 的任何 Web 窗体功能相比,适当地使用缓存可以更好的提高站点的性能,有时这种提高是超数量级的。

  使用 ASP.NET 缓存机制有两点需要注意。首先,不要缓存太多项。缓存每个项均有开销,特别是在内存使用方面。不要缓存容易重新计算和很少使用的项。其次,给缓存的项分配的有效期不要太短。很快到期的项会导致缓存中不必要的周转,并且经常导致更多的代码清除和垃圾回收工作。若关心此问题,请监视与 ASP.NET Applications 性能对象关联的 Cache Total Turnover Rate 性能计数器。高周转率可能说明存在问题,特别是当项在到期前被移除时。这也称作内存压力。

  7. 选择适合页面或应用程序的数据查看机制

  根据您选择在 Web 窗体页显示数据的方式,在便利和性能之间常常存在着重要的权衡。例如,DataGrid Web 服务器控件可能是一种显示数据的方便快捷的方法,但就性能而言它的开销常常是最大的。在某些简单的情况下,您通过生成适当的 HTML 自己呈现数据可能很有效,但是自定义和浏览器定向会很快抵销所获得的额外功效。Repeater Web 服务器控件是便利和性能的折衷。它高效、可自定义且可编程。

  8. 将 SqlDataReader 类用于快速只进数据游标

  SqlDataReader 类提供了一种读取从 SQL Server 数据库检索的只进数据流的方法。如果当创建 ASP.NET 应用程序时出现允许您使用它的情况,则 SqlDataReader 类提供比 DataSet 类更高的性能。情况之所以这样,是因为 SqlDataReader 使用 SQL Server 的本机网络数据传输格式从数据库连接直接读取数据。另外,SqlDataReader 类实现 IEnumerable 接口,该接口也允许您将数据绑定到服务器控件。有关更多信息,请参见 SqlDataReader 类。有关 ASP.NET 如何访问数据的信息,请参见通过 ASP.NET 访问数据。

  9. 将 SQL Server 存储过程用于数据访问

  在 .NET Framework 提供的所有数据访问方法中,基于 SQL Server 的数据访问是生成高性能、可缩放 Web 应用程序的推荐选择。使用托管 SQL Server 提供程序时,可通过使用编译的存储过程而不是特殊查询获得额外的性能提高。

标签:asp.net,.net,技巧
0
投稿

猜你喜欢

  • mysql如何通过my.ini更改默认字符集

    2024-01-28 08:25:07
  • [组图]手把手教你制作ASP留言本

    2007-09-22 09:32:00
  • Django如何继承AbstractUser扩展字段

    2023-08-24 06:19:27
  • 纯JS实现动态时间显示代码

    2024-05-02 17:31:34
  • Pytorch中的model.train() 和 model.eval() 原理与用法解析

    2022-06-06 20:51:04
  • MySQL多表查询的具体实例

    2024-01-22 00:13:20
  • SQL Server查找表名或列名中包含空格的表和列实例代码

    2024-01-17 03:15:33
  • golang函数的返回值实现

    2024-04-23 09:47:52
  • 指导:SQL Server无日志恢复数据库

    2009-02-20 17:07:00
  • 解决Python下json.loads()中文字符出错的问题

    2022-06-17 21:16:52
  • 深入了解Python的异常处理机制

    2023-09-03 09:25:41
  • perl的格式化输出及chomp的重要性分析

    2022-03-22 11:03:00
  • 微信小程序(六):列表上拉加载下拉刷新示例

    2024-05-11 09:34:22
  • 10行Python代码实现Web自动化管控的示例代码

    2021-05-30 17:01:05
  • 历数Firefox2.0对XML处理的改进

    2007-11-27 12:41:00
  • 一文带你掌握Go语言中文件的写入操作

    2024-02-07 13:23:54
  • golang常用库之操作数据库的orm框架-gorm基本使用详解

    2024-01-28 21:22:19
  • Mootools 1.2教程(3)——数组使用简介

    2008-11-17 20:16:00
  • Python实现高斯函数的三维显示方法

    2023-07-04 01:47:22
  • Pyinstaller+Pipenv打包Python文件的实现示例

    2021-06-11 01:49:51
  • asp之家 网络编程 m.aspxhome.com