我有一个在azure app服务上运行的应用程序,该应用程序正常运行,但有时会非常慢。使用指标我可以看到,当应用程序变慢时,因为.Net进程占用了几乎100%的CPU时间,并且它一直在做,直到我重新启动服务。 我不知道它导致了这种行为的功能,我也没有任何猜测。
我该怎么做才能找出我的代码的哪一部分几乎占用了整个处理器的时间?
是否有任何工具可以告诉我在给定时刻正在执行哪些代码?
答案 0 :(得分:0)
最好的办法是在进程处于该状态时进行内存转储,这样您就可以在本地进行分析(例如在windbg或VS中)。要执行此操作,请从Kudu UI(例如https://[yourapp].scm.azurewebsites.net/ProcessExplorer/)转到Process Explorer,右键单击相关流程并获取转储。
答案 1 :(得分:-1)
试试这个,检查哪个占用了大部分空间 https://technet.microsoft.com/en-us/sysinternals/bb896653.aspx