I am very interested in this set of changes. I am currently load/performance testing ActiveMQ, and am very surprised at the results. Anything that can be done to speed this area is a good thing. I have found a dramatic drop in performance when adding even a single consumer, especially to a Topic. The producer to the Topic is slowed down quite a bit, which was a surprise to me. I expected that the existence/non-existence or performance of a consumer would have no impact on a producer, but that is not the case. A producer is directly impacted by any consumers, especially idle consumers. An idle Topic consumer can actually cause a producer to block. As far as I have been able to determine from browsing the documentation, this is by design.
I am looking forward to your efforts in this area. Best Regards, Jim On Tue, Feb 12, 2008 at 10:39 PM, Rob Davies <[EMAIL PROTECTED]> wrote: > Hi David, > > I think this is a valid patch. What I'm looking at at the moment is > only adding messages to a QueueSubscriber's pending list which it can > dispatch - rather than lots checking to see if they are able to > dispatch it. > > cheers, > > Rob > On Feb 13, 2008, at 6:22 AM, David Sitsky wrote: > > > Hi Rob, > > > > I changed the condition for when to check the "trash" list to: > > > > if (count > 0 || trash.size() > 1000) > > > > this gave much better performance for a range of application data. > > I've re-attached the patch again to avoid confusion. As I said > > before - the broker consumes far less CPU now than before, so I am > > able to add a lot more consumers now. > > > > Any thoughts? Are there better ways of implementing this? > > > > Cheers, > > David >