On 06/27/2011 12:03 PM, Alan Conway wrote:
On 06/27/2011 06:25 AM, Ilyushonak Barys wrote:
Hi, folks.
I have done some tests in my environment and faced with very strange
behavior.
Perftest works in some times faster (average 5), than my custom code
(c++ client). I'm speaking about relative value in constant environment.
The main question is: is any difference in performance between client
api and messaging api?
The perftest use client api (which deprecated after v0.6), I use
messaging api.
I have goal to increase subscriber performance, so I tried varied
things, like
1)
http://qpid.apache.org/books/0.10/Programming-In-Apache-Qpid/html/ch02s06.html
2) non-persistence messages
3) reliability: unreliable/at-least-once
4) using or not client acknowledge
It allowed me to increase performance in 2 times. But my client still
works in 5 times slower, than perftest.
Environment:
I have clustered 0.8 c++ broker (virtual), and one workstation as a
client machine.
I use c++ client, constant message size (64 bytes) in both tests.
I did some benchmarks a while back and got similar performance for both
APIs. The new API has some slower settings by default but once all the
parameters are tweaked it's about the same.
I was comparing:
qpid_cpp_benchmark --receive-option link:{reliability:unreliable}
--repeat 5 --messages 100000 --no-timestamp
perftest --count 100000 -s
qpid_cpp_benchmark is a python script that runs C++ clients qpid-send
and qpid-receive. You can find them all in Qpid SVN:
https://svn.apache.org/repos/asf/qpid/trunk/qpid/cpp/src/tests/
One issue is that the number of headers in a message affects the
performance. This appears to be the case for both the old and new
(qpid::client and qpid::messaging) APIs and appears to be related to
memory allocation while decoding qpid::framing::FieldTable.
---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project: http://qpid.apache.org
Use/Interact: mailto:[email protected]