Home > Software > benchmarking curb/net::http/evdispatch

benchmarking curb/net::http/evdispatch

I started to put together some benchmarks to validate my work on evdispatch. Here’s what I have so far…

Curb as a pure C extension runs on the main ruby thread, meaning no ruby threads can be schedule while it’s blocking. It uses the easy curl interface meaning it’s all blocking. This makes it very easy to use and for single requests it’s great. For multiple requests, it’s as though all the requests are made one after the other in serial.

Net::HTTP + Thread is really good, it runs fast and really doesn’t start to show performance issues until it starts to exceed 20 concurrent requests.

Evdispatch is good for when you start to pass the 50 concurrent requests. It suffers from some stability issues at the moment, as time permits I’ll work on fixing them.

Net::HTTp vs Evdispatch vs Curb for 50 concurrent requests.

Net::HTTP vs Evdispatch for 50 concurrent requests

Net::HTTP vs Evdispatch for 400 concurrent requests

The x axis is number of requests and the y axis is time per request. My benchmark code is here.. For most uses Net::HTTP should be plenty fast when making concurrent requests. I would definitely keep an eye on the rev.rubyforge.org project.

Software , , , ,

  1. No comments yet.
  1. No trackbacks yet.
CommentLuv Enabled

Comments links could be nofollow free.