camel-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From bwtaylor <>
Subject Faster!!
Date Thu, 25 Jun 2009 08:08:48 GMT

I've been doing the simplest possible performance/benchmark test on Camel. I
took a stock activemq 5.2 with camel 1.5 and the example.A to example.B
route, bumped up the queue memory to 50m and ran
  ant producer -Dmax=10000 -Dverbose=false -Dsubject=example.A 
from the example directory. It took about 38 seconds for the camel route to
finish handing them to example.B. 

Next I updated to camel 2.0-M2, I ran the same A to B route in about 38
seconds again. 
2.0-M2, with no persistence store finished in 28 seconds.
2.0-M2, with no persistence store and a route of activemq:example.A to
browse:example.B took 24 seconds.
A control load with no persistence took 6 seconds: ant producer -Dmax=10000
-Dverbose=false -Dsubject=example.C

Assuming the browse endpoint write is negligible, this leaves 24-6=18
seconds for activemq to hand messages to camel and camel to ask it's next
endpoint to take them. Presumably the activemq dequeue is no worse than a
write, so camel is introducing 12 seconds to move 10k messages.
Unfortunately, for one of operations I'm working on right now, a complex
event processing problem where I'm using esper, Camel seems to be an
insurmountable speed bottleneck for me. Esper is rocking fast and in my
testing I was pumping 20M pojos in and getting 4M out in 25 seconds. It
looks impossible to get more than about 800 messages per second through
Camel, regardless of what you connect to. This is really annoying, because
camel makes writing esper glue code extremely nice! 

Based on the numbers above, camel actually seems comparable to adding
activemq persistence. That doesn't seem reasonable: Camel's speed for simple
from-to routes seems to be the wrong order of magnitude. When I've profiled
in the past, I've seen TypeConverter stuff showing up as the bottleneck. I
don't know if that's still the case or not, but it's a good example where
speed should be able to be substituted for cleverness. I'd love to see Camel
add a set of benchmarks, and publish the numbers every release. On the
prominent benchmarks, I'd love to see every release of Camel having a ticket
or two addressing the top bottlenecks. Surely I'm not the only user out
there interested in seeing a Camel get Faster.
View this message in context:
Sent from the Camel - Users mailing list archive at

View raw message