有没有可以连接到正在运行的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/