[ 
https://issues.apache.org/jira/browse/CAMEL-4863?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13181363#comment-13181363
 ] 

Aaron Whiteside edited comment on CAMEL-4863 at 1/6/12 3:06 PM:
----------------------------------------------------------------

I understand direct is synchronous. But it should only block until the threads 
EIP has queued the Exchange to its ExecutorService. So given this theory you 
should see the queue of the ExecutorService building up (to it's max size) as 
the loop iterators over - this however is not happening. The queue feeding the 
threads EIP ExecutorService never has more than 1 Exchange on it.

So the question becomes what is the threads EIP waiting for?
                
      was (Author: aaronjwhiteside):
    I understand direct is synchronous. But it should only block until the 
threads EIP has queued the Exchange to its ExecutorService. So given this 
theory you should see the queue of the ExecutorService building up (to it's max 
size) as the loop iterators over - this however is not happening. The queue 
feeding the threads EIP ExecutorService never has more than 1 Exchange on it.
                  
> Using <threads>/threads() is ALOT slower than using the seda:endpoint
> ---------------------------------------------------------------------
>
>                 Key: CAMEL-4863
>                 URL: https://issues.apache.org/jira/browse/CAMEL-4863
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-core
>    Affects Versions: 2.9.0
>         Environment: JBoss 7.1 CR1b
>            Reporter: Aaron Whiteside
>            Assignee: Claus Ibsen
>            Priority: Critical
>              Labels: performance, seda, threading, threads
>             Fix For: 2.10
>
>         Attachments: camel-threads-vs-seda-testcase.tar.gz
>
>
> Snippets from my routing file:
> {code:xml}
> <threads maxPoolSize="10" maxQueueSize="10">
>    <to uri="jms:queue:testQueue?deliveryPersistent=true"/>
> </threads>
> {code}
> compared to:
> {code:xml}
> <to uri="seda:test?concurrentConsumers=10&size=10"/>
> {code}
> {code:xml}
> <from uri="seda:test?concurrentConsumers=10&size=10"/>
> <to uri="jms:queue:testQueue?deliveryPersistent=true"/>
> {code}
> Using <threads> I get about 600 requests/per second.
> Using seda endpoint I get about 3000 requests/per second.
> Looking at the thread pools created by Camel in jconsole: I can see that the 
> one created by <threads> is mostly idle as compared to the one created by the 
> seda endpoint which is always busy.
> Also in the MBean Camel creates for it's managed thread pools, for the 
> ThreadPool created by <threads> the TaskQueueSize attribute is almost always 
> 0 and never more than 1. This is in contrast to the TaskQueueSize attribute 
> on ThreadPool created by the seda endpoint which is always 10 (the seda queue 
> size, and obviously until all the tasks have completed).

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to