I'm looking into using select() in the beta version of my thesis project. After I got the first cut of the server done I was freaking out because the process was eating 20% of the CPU while idling, ~50% of the CPU with one client attached, and ~68% of the CPU with one inactive client connected. I've figured out more what I need out of my select call and chopped the code down to (mostly) the necessities. The server is sticking right around 10% of the CPU for all the scenarios above. I think this is livable, I'm still not sure whether this approach is "better" than a threaded-server with a blocking accept(). I would like to run experiments with a comparison of the two sometime.
