Is there any .NET performance profiling tool that I can connect to a running Windows service and fetch the base stack? It would be great if the tool did not require installation, because I would need to get a lot of red ribbons, although the IT department of the client.
thanks
Nature of the performance problem: This program, which has performance problems, runs as a Windows service and processes revenue messages from over 200 mobile devices. Typically, this program can process at least 10 messages per second. Unfortunately, after a recent update, this program for some reason can no longer process messages fast enough, usually around 7 a.m. A message arrives and he can sit in the internal queue of the program for more than 10 minutes before it can be processed. We also notice that the program uses a higher than usual CPU. As a rule, it should be 5% on an octa-core computer, now it is 20-25%.
The program performs more than processing incoming messages, and also maintains a database and serves data for clients. It has five threads that process incoming messages, and any service job is executed in the thread.
The current workaround is to restart the service when a slowdown occurs. After rebooting, the program will start working normally again (CPU up to 5%). Until next morning at around 7am, this will happen. All messages in the queue were discarded after each restart. Usually 7 AM and 5 PM are the time when we get a lot of messages, but the problem only occurs within 7 hours.
Our team tried to reproduce the program in the house using simulated messages and compared the code to see if there was a critical bottleneck.
source share