.net - .NET生产代码概要分析工具

标签 .net performance profiling

有没有可以连接到正在运行的Windows服务并进行基本堆栈调用采样的.NET性能分析工具?如果该工具不需要安装,那就太好了,因为我需要通过客户的IT部门进行繁琐的工作。

谢谢



性能问题的性质:
这个有性能问题的程序作为Windows服务运行,它处理来自200多个移动设备的收入消息。通常,此程序每秒可以处理至少10条消息。不幸的是,在最近的升级之后,由于某些原因,该程序通常在早上7点左右不再能够足够快地处理消息。一条消息进入,它可以在程序内部队列中放置10分钟以上,然后才能对其进行处理。我们还注意到该程序使用的CPU高于正常CPU。通常,在八核计算机上为5%,现在为20-25%。

该程序不仅处理传入的消息,还维护数据库并将数据提供给客户端。它具有五个线程来处理传入消息,并且任何维护作业都在其线程上运行。

当前的解决方法是在速度变慢时重新启动服务。重新启动后,程序将再次正常运行(CPU低于5%)。直到第二天早上7点左右,它才会重新开始。每次重新启动后,队列中的所有消息均被丢弃。通常,我们会在早上7点和下午5点之间收到很多消息,但是问题似乎仅在早上7点之间发生。

我们的团队尝试使用模拟消息在内部重现该程序,并进行了代码比较以查看是否存在任何严重的瓶颈。

最佳答案

时间已经过去,还有另一个工具可以列出:CodeTrack。无需安装即可使用。

关于.net - .NET生产代码概要分析工具,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5616765/

相关文章:

haskell - 使用 GHC 仅分析单个功能(或成本中心)

django - 如何在生产中在 Gunicorn 上分析 Django

maven - 在 maven 3 上构建分析?

c# - JSIL与Script#与SharpKit

c# - form.dispose() 总是调用验证事件并显示弹出消息

.net - 为什么 Visual Studio 调试器不显示由 wait 关键字生成的状态机代码?

C# 从 CancellationToken.Register 中抛出 OperationCanceledException

mysql - 为什么mysql查询需要表锁隔离读未提交?

mysql - 一次更新多个表的一列

mysql - 查询极慢