We are starting to see a problem with some Windows XP machines. These XP machines are running unpatched, vanilla installations of XP. They are not connected to the internet and so haven't downloaded any updates, no software is being updated. Our application runs fine when the system is first used but over time the performance of the XP machine is slowing down. By 'over time' I mean the PC itself is running for weeks without a power cycle and the application we've built runs for days at a time. We have only just noticed this slow down because the XP machine has a life-sign protocol with the rest of the system which is not being triggered because the load on the XP machine is too high, failing this life-sign halts the system (if you've read some of my other questions you'll know the system counts cash and so it's important that records are kept of how much cash has been through the system, which is what the Windows XP machine does).

So, does anyone have any ideas why the XP machine is slowing down? Is it the system event log, an unnecessary service or something else. Any ideas how to identify the source of the slow down?

Edit: If it were up to me, I would update with the latest patches. Unfortunately, these PCs are in banks based in other countries and they really don't like the machines being updated, let alone being connected to the internet. I have two options for investigating the problem: 1. Ask a field service engineer to get information from the machine and 2. flying out to the machines and seeing what's happening first hand. Option 2 would make the banks suspicious, which would be bad (we have a work-around at the moment, but we still need to work out why it's happening and whether or not the fix will last).

Finally, the people using the machines do not have access to the explorer shell, there is no start menu, alt-tab and ctrl-alt-del are disabled (again, the banks don't want anyone having access to the data/software).

We've asked w service engineer to get some data from task manager and do some defragging (although I'm not sure a defrag will do much).

migrated from stackoverflow.com Nov 27 '09 at 14:50

This question came from our site for professional and enthusiast programmers.

  • If you say "unpatched, vanilla installations of XP", I would suggest to reinstall and install the service packs which might improve stability. – schnaader Nov 27 '09 at 14:51
  • 1
    is it 'OS Rot' week at SU? :) i think this is the 3rd time i see this topic coming in the last few days. – Molly7244 Nov 27 '09 at 15:44
  • 1
    @schnaader This is likely a corporate machine with a critical, narrowly-defined role that would require a change request and sign-off from the application team before any changes could be made. In these situations, the platform is left alone as even seemingly benign or otherwise advisable changes like service packs could have unexplained and undesired consequences. – Lunatik Nov 27 '09 at 15:45
  • @Lunatik: I understand such situations, but I can't agree with them. It's like "Hey - we could make this power plant secure, but we don't like the paperwork - What was that noise?"... – schnaader Nov 27 '09 at 17:00
  • 1
    @schnaader: it's not the paperwork, rather, all the testing that is required to verify the updates don't change the behaviour of the system, and in large systems the number of interdependancies makes test complex. "We upgraded the power plant control's OS - what do you mean it's stopped working?" – Skizz Nov 27 '09 at 20:03

By 'over time' I mean the PC itself is running for weeks without a power cycle and the application we've built runs for days at a time.

Have you checked out Task Manager? Check which application is using a lot of CPU and/or memory. Maybe your application has a memory leak?

  • +1 for for memory leaks. A slow/minor memory leak will not really manifest itself until the app has run continuously over an extended period of time. Slowly but inevitably the app consumes enough memory to start paging virtual memory. A power cycle or app restart resets the amount of memory consumed, which appears to "fix" the slowdown. – JMD Nov 27 '09 at 16:11
  • ... and honestly, it may not even be your particular money-counting app. It could be something else that's running at the same time. For example, a device driver for the money-counting hardware? But, based on past experience, I'd suggest looking at the long-term memory consumption of your app as a place to start. – JMD Nov 27 '09 at 16:14
  • We've also asked the engineer to see if there's any improvement after a reboot. – Skizz Nov 27 '09 at 16:14
  • in addition to memory leaks, use the SysInternals perf mon to see if the app is leaking handles or other resources, too. – Jeff Atwood Nov 28 '09 at 11:25
  1. Fragmentation of HDD's
  2. Fragmentation of Registry
  3. Bloating of Registry by obsolete entries
  • If the machine was used to surf the internet, install applications and updates, open/close arbitrary files then I would agree with this. But this is a highly restricted PC running three applications most of the time (the GUI, the 'shell' application and a network monitor) so the above points are less likely. – Skizz Nov 27 '09 at 16:22

You might want to consider running some benchmarking tools to assess the stability of the hardware in the machine. There are many applications and web sites that can perform these tests for you and some even give you comparisons to systems with similar hardware so you have an idea what state your system is in. As schnaader mentions, it is a good idea to also update your system with the latest Windows Service Packs.


In addition to getting patches installed to possibly improve stability (as noted by Schnaader) I would look at disk fragmentation. In addition, check for a memory leak. Some apps will slowly leak RAM and then the system starts disk swapping which can really hit performance


XP just slowly degrades over time, period. 98 and ME did the same thing. It was one of the many reasons I got away from the platform.

Most of it has to do with fragmentation of filesystems or the registry, as NoCanDo said. Even simple use does things like update MRU lists (most recently used) which are stored in...the registry.

Check for memory leaks in your application too--they can cause the swap file to become fragmented, and that's difficult and inadvisable to defragment while in use.


you may consider freezing the machine state, e.g. with DeepFreeze.

this would require the application in question to be installed or able to save to a partition, hard drive, USB stick, etc, that is not frozen, this way you will have the operating system in its pristine state after each restart.

while DeepFreeze does an excellent job, it may not be applicable (too restrictive), depending on the use of the machine.

  • We may ghost the hard disk and get the image on our development system to see if we can reproduce it. The only downside is that our development system has a different configuration (it's smaller). – Skizz Nov 27 '09 at 16:18

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.