正在阅读:编写高性能Web应用程序的10个技巧编写高性能Web应用程序的10个技巧

2005-09-01 10:02 出处: 作者:Rob Howard(alpha2002译) 责任编辑:moningfeng

  有一个好消息是 gzip 压缩是 IIS 6.0 的内建特性,并且比它在 IIS 5.0 中使用的效果更好。但是,要想在 IIS 6.0 中启用 gzip 压缩可能没那么方便,IIS 的属性对话框里找不到设置它的地方。IIS 团队将卓越的 gzip 压缩能力内建在服务器中,但忽视了建立一个启用压缩特性的管理用户界面。要想启用 gzip 压缩机制,你必须深入到 IIS 的 XML 配置设置内部(必须对之相当熟悉才能配置)。顺便提一下,在此感谢 OrcsWeb 的 Scott Forsyth 帮我解决了在 OrcsWeb 数个 www.asp.net服务器上的这个问题。

  与其在本文中包含整个过程,还不如阅读 Brad Wilson 在 IIS6 Compression 上的文章。微软知识库也有一篇关于为ASPX启用压缩特性的文章:Enable ASPX Compression in IIS。但是,还必须注意一点,动态压缩与内核缓存由于某些实现细节的原因,其在 IIS 6.0 中是相互排斥的。

技巧 10——服务器控件的可视状态

  可视状态(View State)对于 ASP.NET 来说是个奇特的名字,它在所产生的页面中隐藏输入域以存储某些状态数据。当页面被发回服务器,该服务器能解析,检查其有效性并将这个状态数据应用到页面的控件树中。可视状态是一种非常强大的能力,因为它允许状态被客户端持续化并且它不需要cookies 或 服务器内存来存储该状态。许多 ASP.NET 服务器控件使用可视状态来持续化与页面元素交互期间所作的设置,例如,对数据进行分页时保存当前页显示页。

  然而,使用可视状态有许多不利之处,首先,不论是在请求的时候还是提供服务的时候,它都增加造成整个页面的负担。当序列化或反序列化被返回服务器的可视状态数据时还产生一些附加的开销。最终可视状态会增加服务器的内存分配。

  最著名的服务器控件要数 DataGrid 了,使用可视状态有过之而无不及,即便是在不需要使用的时候也是如此。ViewState 属性默认是启用的,但如果你不需要它,可以在页面控件级或页面级关闭它。在某个控件中,只要将 EnableViewState 设置为 false,或者在页面里使用如下全局设置:

<%@ Page EnableViewState="false" %>
  如果在某页面中不进行回发,或每次请求页面时总是重新产生控件,那么你应该在页面级禁用可视状态。

结论

  我已经向你提供了一些我认为有用的编写高性能 ASP.NET 应用程序的技巧。正如我在本文开头时所讲的那样,这是一些很初级的指南,而不是 ASP.NET 性能方面的最终定论。(更多有关改进 ASP.NET 应用程序性能方面的信息请参见:Improving ASP.NET Performance.)只有通过自己的经验方能找到最佳途径来解决具体的性能问题。不管怎样,在你解决问题的过程中,这些技巧多少会对你有所裨益的。在软件开发过程中,每一个应用都有其独特的一面,没有什么东西是绝对的。

——常见的性能神话

  最常见的神话之一是 C# 代码比 Visual Basic 代码快。这样的说法是站不住脚的,虽然在 Visual Basic 中存在一些 C# 没有的性能阻碍行为,比如显式地声明类型。但是如果遵循良好的编程实践,没有理由说明 Visual Basic 和 C# 代码不能以几乎同样的性能执行。简单说来,相同的代码产生相同的结果。
键盘也能翻页,试试“← →”键

关注我们

最新资讯离线随时看 聊天吐槽赢奖品