Why does CheckSUR take a long time to run?

I've been asked a lot recently about the CheckSUR utility that our engineers send to customers to assist with servicing corruption issues.  I typically ask that all of our engineers run this tool regardless of the "ease" of the potential fix and the utility gives us a lot of information about the state of the serviving stack when issues are present.  Additionally, the tool was built around specific scenarios that we know we can fix, so this can and does resolve a lot of servicing issues just by running it.

The main question we get though is why does it take so long to run?  I've heard any number of reasons but wanted to give the limiting factors when it comes to running the tool.  The main thing is the spindle speed of the disk on the system you are running the tool on.  This is because the CheckSUR utility comes as a packaged payload.  We create the \Windows\CheckSUR directory on your system and then unpackage the contents of the utlity to your local drive before we ever run the actual tool.  This takes up the majority of the time (~75-80%).  The rest of the time is used for running the tool and generating the log file.  If you have a large amount of corruption on the system, such as a failed service pack, then it may take a little longer but in general the tool should be usable in about 15mins from the time the installer starts.

If you need to run the utility again on the system, you should be able to just re-run the utility you've downloaded (assuming you kept it) and it will be much quicker because it doesnt need to rebuild the directories for the \Windows\CheckSUR directory and can just run the tool.  All of the log files for the utility are held in the \Windows\Logs\CBS\CheckSUR.log file.  We will recreate this file each time the utility is run so the only the most current entries will be in the log.

If you were unaware of the utility or would like more information on it, please see the following: https://support.microsoft.com/kb/947821

 --Joseph