<div dir="ltr">Thanks Michael for that super fast reply,<div><br></div><div>That was what I was actually questioning... across all threads, 91% of the time is spent in the connection thread and all of it is in reading the socket which I found somewhat suspicious, knowing how much processing needs to happen per message. �The other 9% is spent in &quot;my code&quot;. �Is it really true that it is so time consuming for the connection thread to need 9/10ths of the time? �Also - I&#39;m only seeing 400msg/s (even when I comment out all my code) from a durable persistent queue with ACK, lending more weight to my suspicions that something is not quite right here (I have basic QoS at 100msg and a single thread+channel here). �</div>
<div><br></div><div>You still think this is correct behavior? �</div><div><br></div><div>Cheers,</div><div>Tim</div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div>
<div>�<br><div><br></div><div><br><div><br></div><div><br></div></div></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Aug 1, 2013 at 5:02 PM, Michael Klishin <span dir="ltr">&lt;<a href="mailto:mklishin@gopivotal.com" target="_blank">mklishin@gopivotal.com</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Tim Robertson:<br>
<div class="im"><br>
&gt; Does this look suspicious to anyone? �Can anyone shed any light on how one might improve this?<br>
<br>
</div>Java client uses a separate thread for network activity (called &quot;main loop&quot;), one per connection.<br>
<br>
So in that thread, 100% of time is spent reading from the socket. When a delivery arrives,<br>
it is dispatched to a work pool (every channel has its own, AFAIR).<br>
<br>
If you profile all methods, it&#39;s certainly very likely that com.rabbitmq.client.impl.AMQConnection$MainLoop.run will be at the top of<br>
the overall table.<br>
<br>
You can try excluding certain classes/methods/threads from the profiler. That will<br>
give you a more informative insight.<br>
--<br>
MK<br>
<br>
</blockquote></div><br></div>