[英]diagnosing performance of asp.net website / application pool
我在使用ASP.Net/C#开发的网站上遇到问题,有时会无限期地占用所有CPU使用率(100%)。 您有什么想法/提示如何解决可能导致这种资源浪费的问题吗? 该网站仍在响应,因此没有崩溃或类似情况。
我从哪里开始有点头绪!
谢谢!
开始在服务器上使用性能计数器。 添加用于垃圾回收,线程使用情况的计数器,并确切查看哪个线程正在消耗CPU。
另外,请检查以下内容:
DebugDiag是一个不错的起点: http : //www.microsoft.com/download/en/details.aspx?id= 26798
我在过去也遇到过同样的问题。 我主要遇到HTML rendering
很慢的问题。 我通过在页面指令中设置Trace = true
来解决此问题,并找出了花费时间的事件。
另一个问题是Memory Management
。 我正在使用Image Classes
,但未正确Dispose
它们。 为此,我开始使用Dispose()
方法,并且在体系结构中可以使用Using语句。
using (SqlConnection con = new SqlConnection("Connection String"))
{
using (SqlCommand cmd = new SqlCommand())
{
using (SqlDataReader DR = cmd.ExecuteReader())
{
}
using (DataTable DT = new DataTable())
{
}
}
}
我认为您可能在任何页面上都可能获取过多的记录。 您可以开始使用Paging
。
最重要的一点是Exception Handling
。 Try Catch
块不应该在每一层。 它应该仅在Presentation Layer
。 原因是,发生异常时,它直接返回到调用函数。 那么为什么要编写Try Catch
块,从而stopping the execution
每一层stopping the execution
最好和最简单的起点是使用性能分析器。 只需运行它,幸运的话,您会在几分钟内解决问题。
尝试dotTrace ,这是一个很好的选择。 如果您点击链接,则有10天的免费试用和视频教程。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.