Wednesday, February 23, 2005

The speed of ginstall vs install

Now and then I compile certain open source projects on Windows XP using Cygwin, and there is one thing that has annoyed me for a while. Every time the program /usr/bin/install is invoked, the explorer.exe Windows process, which is responsible for handling for example the Start menu and task bar, consumes 100% CPU for about a second. Since install is usually invoked many times, that unnecessarily slows down compilation.

Last week I got sufficiently annoyed to investigate what causes this. After some fruitless digging through Cygwin sources, I discovered that simply renaming install.exe to something else, like ginstall.exe, prevents the problem from happening. It turns out that executing any program named install.exe or setup.exe on Windows XP causes explorer.exe to consume CPU for a short while just when the program quits.

You can try this yourself, just copy a small program like c:\windows\system32\help.exe and name it install.exe. Open Task Manager, execute install.exe (preferrably from a command prompt), and watch explorer.exe briefly consume CPU. I have tested this on a few machines running Windows XP SP2.

What I guess explorer.exe is doing is to update the contents of the start menu, so that any newly installed software is immediately available, since software installation programs under Windows are normally named install or setup.

0 Comments:

Post a Comment

<< Home