代码之家  ›  专栏  ›  技术社区  ›  Niyaz

找到web应用程序瓶颈的方法有哪些?

  •  21
  • Niyaz  · 技术社区  · 15 年前

    有没有办法找出web应用程序中的瓶颈?

    编辑:我不是问任何前端调整,如图像、css等。我想知道的是如何分析应用程序的后端,以便我知道要修改哪些方法/查询以提高性能。

    11 回复  |  直到 15 年前
        1
  •  26
  •   clint    15 年前

    关于应用程序服务器上的瓶颈,您可以使用 profiling tool 要查看PHP在代码的每个部分花费了多少时间,使用了多少内存等, webgrind 似乎是一种流行的、基于GUI的评测方式。差不多 dotTrace 将对ASP.NET应用程序执行相同的操作。注意,当涉及到数据库时,像这样的分析工具只会向您显示哪些数据库查询比较慢——而不是 为什么?

    web应用瓶颈的另一个方面是浏览器关闭所有内容(CSS和JavaScript导入、图像等)并呈现页面实际需要多长时间。有好几家像这样的公司 Keynote 谁拥有来自世界各地的机器人,可以访问您的站点,分析性能,并为您提供有关更改的建议,以获得应用程序的输出 并尽可能快地渲染 (例如,“使用gzip压缩并将JavaScript放在页面的末尾而不是页首”,等等)。当然,你也可以在更小的范围内自己做这件事。例如,Firefox插件,如 Jiffy YSlow

        2
  •  4
  •   Mark Unwin    15 年前

    对于任何web应用程序,您都可以尝试使用Firebug扩展以及Yahoo YSlow扩展(到Firebug)。对页面性能非常有帮助。 http://developer.yahoo.com/yslow/

        3
  •  3
  •   Ta01    15 年前

    Tracing 这是一个很好的开始

        4
  •  2
  •   zendar    15 年前

    Fiddler 是流量记录和监控的良好工具。它在客户机上工作,您可以查看客户机和web服务器之间的请求和应答。您可以轻松地分析慢速页面并检测原因(对于多个请求、大页面等)

    特别是对于ASP.Net,有一种跟踪机制,可以为web应用程序创建详细的日志。日志显示计时信息,您可以找到长时间运行的函数。(MSDN文章: ASP.NET Tracing Overview

        5
  •  1
  •   perrohunter    15 年前

    尝试使用一些测试引擎(如PHPUnit)来强调您的应用程序,并使用shell来查看哪些过程需要更长的时间才能解决。

    在Unix/Linux上,可以使用“top”命令

    在Windows上使用任务管理器(扩展)

        6
  •  0
  •   Ask Bjørn Hansen    15 年前

    如果您使用Perl,那么 Devel::NYTProf super amazing

    我在OSCON和MySQL会议上做过几次教程,内容是关于“ Real World Web: Performance & Scalability “(提供幻灯片 in PDF

        8
  •  0
  •   2 revs, 2 users 70%<br/>HMS_Matteo&#13; &#13;    15 年前

        9
  •  0
  •   Middletone    15 年前

    如果您有一个正在调用的库,那么您也可以使用httpcontext.Current.trace.Write在其中进行跟踪,以输出您需要查看的内容。或者,如果您的应用程序非常挑剔,您可以编写自己的函数,将跟踪语句存储在共享变量中,并在脚本运行后将其写入DB或其他机制。

        10
  •  0
  •   Flynn81    15 年前

    如果您想要找到瓶颈的通用方法,请尝试使用HTTP监视工具。这允许您查看哪些类型的请求花费的时间更长,或者它们是否返回错误消息。然后,您可以使用特定于平台的分析工具,根据该工具中的数据对应用程序的特定区域进行定位。

    我喜欢使用HTTP代理工具,比如 Charles 进行这种类型的分析。

        11
  •  -3
  •   Stephan Eggermont    15 年前

    第一步又快又脏。在iPhone、连接3G的笔记本电脑、连接卫星互联网的pc和windows mobile PDA上试一试。如果这行得通,你就完了。如果没有,则进行三角测量。