2009-08-24 103 views
1

我们有MSSQL,一些C#web服务,一些ASP.NET和一些AJAX。我们的加载时间很糟糕,通常需要2-3秒才能刷新页面,有时甚至更多。我不知道从哪里开始。在ASP.NET中发现性能瓶颈

整个端到端都有哪些性能分析工具可以确定哪些是最大的瓶颈?

回答

4

你最好打赌......正如我以前说过的一百万次......是Red Gate套工具。

ANTS Performance Profiler是您的工具。

对于SQL性能分析,您始终可以使用SQL Server自带的Profiler。

+0

当然,使用这个,并能够找到代码中的瓶颈,我从来没有怀疑是瓶颈。如强类型的数据集。 – Zoidberg 2009-08-24 17:52:23

+2

无耻插件:去年我做了一篇博客文章,讨论我的ASP.Net优化工具箱。我还推荐蚂蚁作为剖析器,从那时起他们已经大大改进了它。 Dottrace也很棒。这里的帖子:http://www.phpvs.net/2008/08/11/aspnet-load-testing-and-optimization-toolkit-so-you-want-to-be-a-hero/ – womp 2009-08-24 18:00:27

+0

如何配置文件Prod ASP.NET应用程序使用ANTS PP? – Tomas 2012-09-03 14:45:17

2

如果您只需要这样做一次,或者您没有足够的资金用于任何可能找到的性能分析器,则可以随时采用跟踪。

在从Web服务或数据库调用中取回结果的C#代码中,使用代码封装调用以检测调用需要多长时间。将它写入某个日志文件,调试输出或直接进入结果页面。对于可疑的其他情况做类似的事情。

2

系统在一个环境中的行为是否很差,即数据集大于您开发的数据集?这对我们来说很困难,过去的B/C人员会针对小数据集写入糟糕的查询,但直到我们达到产量时才会注意到。

如果不是那么我肯定人们会推荐很多好的工具,比如SQL Profiler,Visual Studio的Profiler,或者简单地在ASP.Net页面上使用Trace = true。对于AJAX,我发现像Firebug这样的JavaScript调试器对于了解幕后的情况非常有用。

+0

用于ASP.NET跟踪。如果你有数据绑定项目的日志或跟踪语句,这可能会有所帮助。有一次,我发现数据检索不是瓶颈,而是它将5000条记录绑定到一个下拉列表中。所以数据库查询已经过优化,以减少绑定的项目数量。 – 2009-08-24 17:55:14

1

Jetbrains有一个名为dotTrace的产品,它可以监控性能和内存。

1

可能最好的第一步是确定它是花费时间还是前端的数据库。

红门工具也很有用,但如果您不确定他们要求您解决什么问题,则可能需要从更基本的层面入手。如果它是数据库,那么SQL Server分析器就是你的朋友。这里有一些基本的痕迹,要特别注意持续时间和阅读内容,这些内容会指向正确的方向,或者至少帮助您识别问题领域。

在网页上,跟踪标志可能特别有用。

祝你好运! Dan

0

Google Page Speed - a Firebug插件 - 也可能是一个选项,用于跟踪加载ASPX页面时消耗您的时间的选项。

顺便说一句,通常也是一个巨大的ViewState可能是Aspx页面上的一个问题。

0

更多关于@Juri说的,还可以获取Firebug的YSlow插件。

有几件事情我去首先解决速度:

  1. 将所有CSS文件合并成一个(和缩小)
  2. 将所有的JavaScript文件合并为一个(和缩小)
  3. 多少图片你有没有在网页上?考虑使用Sprites。
  4. 页面上的任何404s?

另外,你是否尝试使用Trace =“true”。