Shan Wang wrote:
The last slow performance is my fault, I was calling
FailoverManager::execute() for every pending message.

Now I have improved my program so it can do as much as 5000 messages per
second, but it's still slower than I would have expected. So I wrote a
test program deriving from the replay_sender test example, to test the
performance of c++ client using FailoverManager, the code is pasted
below.

Try a larger value for the flush interval to MessageReplayTracker (or even try eliminating the tracker entirely for a test). Flushing frequently will slow down the writing of messages to disk.

The result is not much different from my real application, the maximum
update rate is about 5000-6000 messages per second. Can anyone please
have a look at my test and point out if any reason could be the course
of slow performance. If JMS can do as much as 100K, I would expect the
c++ can achieve similar rate.

What do you want to measure, the time it takes for the application thread to hand off x messages to the library? or the time it takes for those messages to actually be enqueued on the queue?

You can also try using the perftest program in the src/tests directory. It will allow you to set the messages size and durability and will report both publish rate, subscribe rate and throughput.



---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:[email protected]

Reply via email to