Zend certified PHP/Magento developer

.NET application seems not to be executing some operations when left to sit idle – laggy after sitting idle

I have a .NET application which basically does the following:

  • Is connected to a bunch of serial devices (~32) via COM ports, and is processing data coming from those devices
  • When a message is received from these serial devices (there are some libraries that are monitoring the raw serial data, and letting my application know when they’ve assembled a full “message”), my application logs the message to SQL, adds a data point to a live chart on screen, and adds the message to a list of messages scrolling by on the screen

When the PC is in active use, we see these messages come in from the serial devices about 1/sec. I know that there are always messages being being received by these devices at about that rate (they’re wireless receivers, and I know how often the wireless transmitters transmit). When the PC is left idle for a while though (15-30 minutes), we stop seeing messages coming in in my application. When I interact with the program again, it’s laggy for maybe a minute (this was anecdotally told to me by someone using the computer), then it becomes responsive again, and starts acting like normal.

If I check the SQL logs from the “asleep” period, there is nothing logged, and it’s not like when I interact again I all of a sudden see a bunch of messages logged at once, as though they had been queued up.

The system has 32GB of RAM and the application only shows using about 250 MB. The largest user of RAM on the PC is the SQL database with ~600 MB. It’s running on a Xeon processor with 16 threads I believe.

Any clue on what could be causing this? Potentially windows power saving stuff? I’ve turned off all power management settings I could find, but some may be managed by the PC’s site network. Memory being paged out to disk? It appears that these processes actually aren’t executing while the program is “idling” though–which I wouldn’t expect from paging.