I’ve found a significant performance difference using Qs between Java and
CMS/C++ consumers.

Environment:
        Windows 2008R2, Opteron @ 2.4GHz (lots of cores)
        Everything is 64-bit:  JDK 1.7.0_02 & C++ compiled with VS.NET 2010 (as
Release/x64)

ActiveMQ V5.7.0:
        persistent=false, 
        queue: prioritizedMessages=false, producerFlowControl=false,
optimizedDispatch=true
                vmQueueCursor

Consumer:
        Java (from V5.7.0), CMS/C++ (v3.4.0, snapshot V3.5.0 and trunk **all**
exhibit the problem)
        prefetch=1
        ack=client_acknowledge

I have dummy consumers in both cases.  Each introduces a sleep/wait.  I
tested with 0ms and 3ms.

        Test #1:  0ms wait, 1x consumer
                Java = ~15,256 messages/second
                C++ = ~4,173 messages/second

        Test #2: 3ms wait, 1x consumer
                Java = ~328 messages/second  (this is good, almost the 
theoretical
maximum)
                C++ = ~64 messages/second (this is awful)

Two problems:

        Problem #1: with the 0ms case, C++ performance is significantly worse.

        Problem #2: with the 3m case, C++ is **limited** to 64 messages a 
second.
                What’s interesting, is that you can increase the # of consumers 
(to 16,
32, etc) and **still** get ~64 messages/second

Any ideas why CMS is so much slower?

Many thanks!

Sean
                



--
View this message in context: 
http://activemq.2283324.n4.nabble.com/Testing-Java-vs-CMS-C-consumer-CMS-is-much-slower-any-ideas-please-tp4659653.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.

Reply via email to