> Doug, if you're looking for blistering socket performance you need to > drop all this and learn about I/O Completion Ports. I have clients > and servers which can drive more than 10k sockets with NO MORE threads > than you have CPUs as reported by GetSystemInfo.
It's pretty spectacular stuff, I had a fairly average xp box doing > 10k sockets (through an external interface, no cheatingly going through localhost) without breaking a sweat and with minimal cpu usage. I was doing TransmitFile (also IOCPable) down a socket (like a webserver, minus the header and footer). The hard part was driving the test, I needed several machines, as a the single mac g5+ kqueues was in kernel panic terroritory at around 5000 sockets. To test throughput I tried chunky reads and writes across several interfaces, including a firewire card - that worked great, but the xp firewire/tcp impl occasionally wedged itself... Apparently the server versions of the windows have differently tuned versions of the IOCP type calls, but I've never had a copy to test. I guess they're just more "serverly". Boh. I started from the kegel c10k website (not to be confused with the pelvic floor exercises of the same name), however it doesn't have that much on IOCPs, being a tad unix-centric. The IOCP library code (but probably not the test itself..., should be added as some sort of regression test) is part of the felix tarball (felix.sf.net). Love, RF. _______________________________________________ Libevent-users mailing list Libevent-users@monkey.org http://monkey.org/mailman/listinfo/libevent-users