![]() |
1
3
一般的答案是“不要这样做”。 除此之外,使用性能计数器还可以获得很多好处。如果内置计数器没有帮助,您可以创建自己的计数器。 除此之外,性能计数器可能会让您了解如何通过负载测试再现性能问题。 下一个想法是缩小你感兴趣的领域。如果web服务访问速度太慢,那么影响整个应用程序的性能是没有意义的。 接下来,请确保已检测应用程序,最好使用配置。企业库日志记录应用程序块在这方面非常好,因为它允许您将日志记录添加到应用程序中,但必须将其配置为关闭。然后,您可以配置要记录的信息类型以及记录到哪里。
最后,您将无法使用dotTrace或其他需要重新启动IIS并向正在运行的应用程序添加代码的功能。不在生产中。上述想法的目的是不需要这样做。 |
![]() |
2
1
内存或cpu ? 内存: 最好的方法是创建w3wp进程的内存转储(启动任务管理器,右键单击该进程,然后单击“创建转储”),然后将转储复制到本地计算机,并使用WinDbg进行分析。看看哪些类消耗的内存最多。关于Stackoverflow如何做到这一点(如何使用WinDbg和分析.NET堆),这里有很多问题/答案。
中央处理器:
我们使用Sam Saffron(Stackoverflow的创建者之一woohoo)的一个简短的命令行分析器,他的项目被放弃了,但我们在这里分叉并维护了它。
https://github.com/jitbit/cpu-analyzer
|
![]() |
3
0
您是否在大量接近生产环境实际负载的会话上对应用程序进行了负载测试?
我的建议是复制生产环境并运行适当的负载测试,然后查看数据,它将为您提供一些线索。 您不想在生产环境中玩游戏,但如果您还没有生产环境,可以使用日志记录来跟踪关键事件的顺序和时间跨度,并从中获取。 |
![]() |
4
0
您可以使用ants分析器 http://www.red-gate.com/products/ants_performance_profiler/index2.htm 他们声称“开销几乎不明显”。 有14天的免费试用期,您可以试一试。 编辑: 我同意John的评论,它会中断,需要一些停机时间才能启动/停止。最好在测试环境中使用它来识别瓶颈。 |
![]() |
5
0
|
![]() |
6
0
我建议在生产过程中进行几个内存转储,查看所有堆栈跟踪,看看是否找到模式。 |
![]() |
Haim Ohayon · 这些链接之间有什么区别? 2 年前 |