Profiling PingWare

Analysis
Mar 29, 20092 mins

In the often-hilarious TV sitcom “The Big Bang Theory,” when the occasion arises to knock on someone’s door, physics nerd Sheldon has an obsessive-compulsive need to knock repeatedly until getting an answer – punctuating his knocks with the name of the person on the other side of the door, such as roommate Leonard or neighbor Penny. (Trust me, it’s funny when he does it. Played with nuanced deadpan by actor Jim Parsons, Sheldon becomes the human embodiment of the if-then-else loop.)

You don’t have to look too hard to see similar behavior in a lot of modern software. Most of the time, the software is just periodically checking for updates. Many antivirus tools do this, as does Acrobat Reader, QuickTime, and iTunes, as well as the support software that comes with some preconfigured Dell systems. I call software that issues regular, periodic communications requests “pingware.” Pingware isn’t usually a big problem because the checks occur infrequently. But some software makes status checks much more often.

For example, some graphics adapter drivers read and write the Registry multiple times a second, looking to detect a change in the display configuration so that the driver can readjust the resolution automatically. I find that sort of thing a little bit rude, A, because it robs CPU cycles for doubtful gain, and B, because you don’t normally even know that it’s going on.

Fortunately, you can sometimes detect overzealous pingware with Process Monitor, a freebie from the System Internals page at microsoft.com. You might be horrified to see how many programs are reading and writing from and to the Registry even after all the services have loaded. A little service surgery (or control panel tweaking) could well make your system run a notch or two quicker by silencing pingware. Not a bad thing to look at, especially when you’re nearing the final stages of testing a server or workstation image for deployment across your organization.

Recent posts:

Some Java with your Java?

Fun with Server Core, Part II

Fun with Server Core, Part I