
When I get time I'm going to write an article about how handles are the new
GDI object in Windows.
Basically, on Windows XP you get around 20,000 handles total. After 15,000 or
so are used, your comptuer slows down. This is a real problem on servers.
JoeUser.com, for instance, was running like a pig. The cause is that the main
SQL server it uses was on a machine using over 20,000 handles so it was just
slowed down to nothing.
Memory won't solve it. CPU power has little effect. It's just that some
programs (like MySQL, SQL server, DLLHost, and the web process) use thousands of
these handles each. It's something Microsoft needs to address if it wants to
compete in the server market for effectively. It's idiocy like a fixed handle
allocation that makes me wonder if MS understands how to make a server.
But it is also becoming an issue on the client. If you're running Windows
XP, hit Ctrl-Shift-Esc. Go to the performance tab. How many handles you using?
Over 15,000? I bet your machine feels slow. What's worse is that task manager
doesn't list what processes use all those handles. I can display the handles but
they don't add up to the 17,000 my machine is currently claiming (odds are it's
Explorer using more than it's reporting).
Handles are the bane of modern computing on Windows.