您的位置:逆风者 VC++ 正文
 添加时间:2007-09-01 原文发表:2007-08-31 人气:15 来源:vckbase.com

本文章共9736字,分7页,当前第1页,快速翻页:
 

ASP.NET 专栏...
编写高性能 Web 应用程序的10个技巧

原著:Rob Howard
翻译:alpha2002

逆风编程技术

原文出处:ASP.NET: 10 Tips for Writing High-Performance Web Applications

本文讨论:

  • 常见的 ASP.NET 性能神话
  • 有用的 ASP.NET 性能技巧和诀窍
  • 在 ASP.NET 中处理数据库的一些建议
  • 缓冲以及用 ASP.NET 进行后台处理
  • 本文使用下列技术:ASP.NET,.NET 框架,IIS

      用 ASP.NET 编写 Web 应用程序其轻松程度令人难以置信。它是如此的容易,以至于许多开发人员不用花费多少时间来构筑其应用便能获得非常好的性能。在本文中,我将给出10个编写高性能 Web 应用的技巧。我的评论不仅仅局限与 ASP.NET 应用,因为它们只是 Web 应用的一个子集。本文也不是 Web 应用性能调整的权威指南——这方面的内容可以写成一本书。相反,本文可以被视作一个好的起点。
      在废寝忘食地工作之前,我常常要去攀岩。在攀岩之前,我总是要看一下指南手册中的线路并阅读以前来此一游的人留下的建议和忠告。但是,不管指南手册有多磨好,在尝试一次特定的具有挑战性的攀爬之前,你都必须付诸实际的行动。同样,在你面临解决的性能问题或者营运一个高吞吐量的站点之前,你只能想方设法编写高性能 Web 应用程序。
      我们个人经验来自在微软 ASP.NET 团队从事底层架构程序经理,运行和管理 www.asp.net ,并协助架构 Community Server 过程中的经历,Community Server 是几个有名的 ASP.NET 应用程序的下一个版本(它将 ASP.NET Forums,.Text 和 nGallery 整合到一个平台)。我确信这些帮助过我的技巧也会对你有所裨益。
      你应该考虑将应用程序分离成几个逻辑层。你可能听说过术语3-层(或n-层)物理体系结构。它们通常是跨进程和/或硬件对功能进行物理划分的规定的体系结构模式。当系统需要伸缩时,更多的硬件能被添加。然而,总是应该避免与进程和机器忙碌程度相关的性能问题。所以,不管什么时候,只要可能,都要在相同的应用中一起运行 ASP.NET 页面及其相关的组件。
      由于代码和层之间的边界分离,使用 Web 服务或远程调用将降低20%以上的性能。
      数据层则稍微有些不同,因为数据库通常都用专门的硬件。但是,数据库的处理成本仍然很高,因此最优化代码时,数据层的性能应该是首当其充要关注的地方。
      在着手解决你的应用程序的性能问题之前,一定要剖析应用程序,确定问题之所在。获取关键的性能计数器值(如实现垃圾收集所花时间之百分比的性能计数器的值)对于查找应用程序在何处最耗时也是非常重要的。凭借直觉常常也能找到耗时所在。
      本文所描述的性能改进有两种类型:大型优化,如使用 ASP.NET Cache,以及不断重复进行的微型优化。这些微型优化有时很有意思。对代码的小小改动便会引起很大的动静,产生成千次的调用。对于大型优化,你可能会看到整体性能的大跳跃。而对微型优化,给定请求可能只是毫秒级的调整,但按每天的请求总数计算,其结果的改进可能是巨大的。

    数据层的性能

      当调整某个应用程序的性能时,有一个简单的试金石,你可以用它按先后次序:检查代码是否存取数据库?如果是,多长时间存取一次?注意相同的测试也可以被应用于使用 Web 服务或远程调用的代码,但我们本文中不涉及这方面内容。
      如果在特定的代码流程中必须具有对数据库的请求以及要考察其它方面,如:想对字符串处理进行优先优化,那么暂且把它放一放,先按照上面定好的优先次序来做。除非你有异乎寻常的性能问题,否则你的时间应该用在尝试最优化与数据库的连接所花的时间,返回的数据量以及多长时间往返一次和数据库的通讯上。
     

    本文章更多内容1 - 2 - 3 - 4 - 5 - 6 - 7 - 下一页>>
    相关文章

    用VC轻松实现 ADO.net
    如何限制PC机上网
    子类化:增强Edit控件为日期输入控件
    TIF格式图像文件初探
    实现类似Excel和Visual C 里文件夹式样的标
    动态真彩工具栏
    C# 2.0匿名方法揭密
    C QA 专栏:列表视图模式,SetForeground
    MFC架构下的DirectX8
    内存优化之道:托管代码的失传内存优化技术
    通用图像类算法扩充库
    基于TCP的局域网多用户通信、文件传送程序详
    通用权限管理模块的设计与实现
    杂谈:人与软件
    USB有关的编程
    QQ界面的模拟实现(下)
    一个打印报表的简单的类
    通过串口收发短消息(下)
    编写、加载和存取插件程序(Plug-Ins)
    Windows CE下驱动开发基础

    相关评论


    本文章所属分类:首页 VC++

      热门关键字: