othiym23 / nonsense-benchmark

suite of servers that don't do anything very interesting, but do it very quickly (and asynchronously)
8 stars 15 forks source link

Cleaned up my C server a bit #17

Closed jthurman42 closed 11 years ago

jthurman42 commented 11 years ago

Not sure if it will run on OSX, since I'm working on Linux (and the OSX stuff generally isn't working on Linux).

othiym23 commented 11 years ago

We have, if only temporarily, a new winner! Good old-fashioned preforking FTW! :+1:

Made 40000 requests in 16.56s.

Times in ms, min/mean/median/max (stddev)
Handled 40000 requests:         0.7/26.5/11.0/2637.0 (157.6)
IQR filtered to 37545 requests: 7.1/11.5/10.9/16.1 (1.5)
Throughput: 144.93krpm (IQR adjusted: 334.23krpm).

There are probably some further performance gains to be realized (or else I need to finish the work I've been doing on my benchmarking client based on wrk), because even at this performance level the cores on my 8-core MBP were only about half-used.

Worked great on OS X right out of the box! Built and ran flawlessly.

jthurman42 commented 11 years ago

w00t! Though performance on my Quad-core Linux desktop is significantly better at 40k, by 6 seconds: http://pic.twitter.com/G4P08EbN8N

othiym23 commented 11 years ago

The wall-clock time is better, but the throughput is worse, once you filter out the outliers (which is what the filtering by inter-quartile range does). This is part of why I'm working on a multithreaded C client -- I think at a certain level of server performance the numbers coming out of the single-threaded (but concurrent) Node client cease to be accurate. I've definitely seen dome weird behavior in Instruments.