[zeromq-dev] striking difference in performance among ZeroMQ bindings.

MinRK benjaminrk at gmail.com
Fri May 3 10:28:47 CEST 2013


I ran your tests on my Linux machine (amd64 Ubuntu 12.04, 12 GB RAM, i7
930),
in case you are interested in more numbers

(everything from git master)

jzmq:
It took 2.574 seconds to process 2000000 messages of size 10 Byte(s) in a
batch
777000.7770007771 messages/second

It took 1.856 seconds to process 500000 messages of size 1.0 KiloByte(s) in
a batch
269396.5517241379 messages/second

It took 2.673 seconds to process 125000 messages of size 10.0 KiloByte(s)
in a batch
46763.93565282454 messages/second


jeromq:

It took 1.33 seconds to process 2000000 messages of size 10 Byte(s) in a
batch
1503759.3984962406 messages/second

It took 2.129 seconds to process 500000 messages of size 1.0 KiloByte(s) in
a batch
234852.04321277596 messages/second

It took 3.014 seconds to process 125000 messages of size 10.0 KiloByte(s)
in a batch
41473.12541473126 messages/second


PyZMQ (CPython 2.7 + Cython)

It took 1.382134 seconds to process 150000 messages of size 10 Byte(s) in a
batch
108527.827258  messages/second

It took 1.627566 seconds to process 150000 messages of size 1.0 Kilobyte(s)
in a batch
92162.1611658  messages/second

 It took 2.618599 seconds to process 150000 messages of size 10.0
Kilobyte(s) in a batch
57282.539251  messages/second


PyZMQ (PyPy 2.0b + CFFI)

It took 1.614755 seconds to process 150000 messages of size 10 Byte(s) in a
batch
92893.3491458  messages/second

It took 1.674885 seconds to process 150000 messages of size 1.0 Kilobyte(s)
in a batch
89558.3875908  messages/second

It took 4.030202 seconds to process 150000 messages of size 10.0
Kilobyte(s) in a batch
37218.9781058  messages/second

Making a few runs, most of these numbers fluctuate by about 10-20%

 (I couldn't run labview)

-Min RK


On Thu, May 2, 2013 at 10:08 PM, crocket <crockabiscuit at gmail.com> wrote:

> Anyhow, jzmq is somewhat slower than JeroMQ when processing small messages.
> The slowness that accompnies 10K messages was partly due to using swap
> space on HDD.
>
>
> On Fri, May 3, 2013 at 1:38 PM, crocket <crockabiscuit at gmail.com> wrote:
>
>> There is a DEALER that sends messages and receives identical messages in
>> a batch.
>>
>> There is the ROUTER that just sends back what it receives to the sender.
>>
>> I tested JeroMQ, labview-zmq, jzmq, and PyZMQ.
>>
>> The test source code is at
>> https://github.com/crocket/ZeroMQThroughputTest
>>
>> To summarize the test results on a windows xp sp3 32bit system with 3GB
>> RAM,
>> for messages of 10 bytes, JeroMQ >> jzmq >>> PyZMQ >>> labview-zmq
>> for messages of 1 kilobytes, JeroMQ = jzmq = PyZMQ >>> labview-zmq
>> for messages of 10 kilobytes, JeroMQ = jzmq = PyZMQ = labview-zmq
>>
>> Below are the test results.
>>
>> Why is labview-zmq so slow when sending small messages?
>> It's just a wrapper around libzmq like jzmq and PyZMQ.
>>
>> 1) JeroMQ
>>
>> It took 1.59 seconds to process 600000 messages of size 10 Byte(s) in a
>> batch
>> 376411.54 messages/second
>>
>> It took 35.81 seconds to process 600000 messages of size 1.0 KiloByte(s)
>> in a batch
>> 16754.16 messages/second
>>
>> It took 304.89 seconds to process 600000 messages of size 10.0
>> KiloByte(s) in a batch
>> 1967.92 messages/second
>>
>> 2) jzmq
>>
>> It took 4.63 seconds to process 600000 messages of size 10 Byte(s) in a
>> batch
>> 129729.73 messages/second
>>
>> It took 34.30 seconds to process 600000 messages of size 1.0 KiloByte(s)
>> in a batch
>> 17494.75 messages/second
>>
>> It took 48.36 seconds to process 100000 messages of size 10.0 KiloByte(s)
>> in a batch
>> 2067.82 messages/second
>> (If I try to send 600,000 messages of 10 kilobytes in a batch, it says
>> "not enough space".)
>>
>> 3) PyZMQ
>>
>> It took 6.51 seconds to process 150000 messages of size 10Byte(s) in a
>> batch
>> 23021.58  messages/second
>>
>> It took 8.78 seconds to process 150000 messages of size 1.0Kilobyte(s) in
>> a batch
>> 17081.85  messages/second
>>
>> It took 73.78 seconds to process 150000 messages of size 10.0Kilobyte(s)
>> in a batch
>> 2033.03  messages/second
>>
>> 4) labview-zmq
>>
>> It took 11.79 seconds to process 40000 messages of size 10Byte(s) in a
>> batch
>> 3390.73  messages/second
>>
>> It took 13.70 seconds to process 40000 messages of size 1.0Kilobyte(s) in
>> a batch
>> 2919.04  messages/second
>>
>> It took 20.67 seconds to process 40000 messages of size 10.0Kilobyte(s)
>> in a batch
>> 1935  messages/second
>>
>
>
> _______________________________________________
> zeromq-dev mailing list
> zeromq-dev at lists.zeromq.org
> http://lists.zeromq.org/mailman/listinfo/zeromq-dev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.zeromq.org/pipermail/zeromq-dev/attachments/20130503/260d32dd/attachment.htm>


More information about the zeromq-dev mailing list