Celluloid-io performance

Hi,

Has anyone run any benchmarks against celluloid-io vs eventmachine? If
so, would you kindly share the results - I have been toying with
celluloid-io and have experienced horrible performance.

Thx

On Tue, Jun 5, 2012 at 3:03 PM, Alexander K. [email protected]
wrote:

Hi,

Has anyone run any benchmarks against celluloid-io vs eventmachine?

Here are benchmarks of Reel (a Celluloid::IO-based web server) versus
Thin
and Goliath:

If so, would you kindly share the results - I have been toying with

celluloid-io and have experienced horrible performance.

Can you post your code and your benchmarks?

Hi Tony,

Here is a simple sample code:

http://pastebin.com/xsh3ETEx

simple bench: while true; do yes “” | nc localhost 8080; sleep 0.2; done

celluloid-io

rate: 5.890396502822116
rate: 4.9157809917162645
rate: 4.916000965003123
rate: 4.899874864349782

eventmachine

rate: 19044.747009580726
rate: 19758.12538857938
rate: 18557.837996556835
rate: 18119.68256128121

I took a look at this again, and your scripts don’t appear to measure
the
same thing at all. The Celluloid::IO script measures how quickly you can
make connections to the server, and the EventMachine script is measuring
how many times it calls the incoming data callback.

The Celluloid::IO numbers definitely still seem problematic, but you are
definitely comparing apples to oranges here

Hi there, this does look like some sort of bug. Thanks for pointing it
out.
I haven’t seen it with Reel before which is odd, because it didn’t used
to
have keepalive support and so this would’ve impacted the tests I did
there.

As far as I can tell the entire reactor is pausing for long periods of
time. A look a thread dump shows that it is blocking on the underlying
system call across both MRI and JRuby. I’m getting similarly poor
numbers
on both MRI and JRuby too, so perhaps Celluloid::IO itself is
implicated.

Would you mind opening a ticket for it?