Right. If you care about performance you will always want an asynchronous
model, and in this case ZeroMQ's batching will make a big impact. A latency
critical request reply scenario is very uncommon.

Pieter
On Jul 12, 2013 9:00 PM, "Trevor Bernard" <trevor.bern...@gmail.com> wrote:

> In your performance experiment ZeroMQ will always be slower than TCP.
> There is a small overhead to using ZeroMQ but it's mitigated by other smart
> things it does like smart batching to avoid redundant network stack
> traversals. But if all you're doing is a synchronous PING/PONG, you lose
> that speed benefit entirely and might as well just use TCP.
>
> ZeroMQ's value-add over TCP is stuff like API simplicity, asynchronicity,
> message queuing/routing, multi-cast, atomic multi-part messaging, etc. If
> speed is your concern, I would suggest redefining your problem and try to
> model it asynchronously.
>
> One embodiment might be:
>
> Use PUSH/PULL to distribute the work and PUB/SUB to aggregate the results.
>
> Warmest regards,
>
> Trev
>
> On Fri, Jul 12, 2013 at 3:19 PM, Diego Duclos <diego.duc...@gmail.com>wrote:
>
>> Seeing as zeroMQ is most likely running on top of tcp in this case, it
>> seems natural that for small messages the processing time of this extra
>> layer of code is adding a noticeable processing time.
>> You can find a really detailed write-up on performance at
>> http://www.zeromq.org/results:0mq-tests-v03
>>
>>
>>  On Fri, Jul 12, 2013 at 7:51 PM, ashwini ramamurthy <
>> ashwini.ra...@gmail.com> wrote:
>>
>>>  Hi All,
>>>
>>> To compare the performance of zeromq and tcp  I did the following
>>> experiment
>>>
>>>
>>>
>>> *Experimental setup for zeromq *
>>>
>>>    -  android client(Motorola razr) which runs jeromq.
>>>    -  java server(PC running Linux) which runs java binding of zeromq
>>>    -  Using the REQUEST-REPLY messaging pattern
>>>    - Sending 100/1000 messages to the server and 100/1000 messages to
>>>    client (synchronous)
>>>    - The client sends a hello message and waits for a reply from the
>>>    server to send another message(ping-pong)
>>>    - The server waits for a message and replies with a hello for every
>>>    message sent
>>>    - Both the devices were connected through wifi
>>>    - *On an avg:For 100 messages the time taken was 937 msec*
>>>    - *On an avg:For 1000 messages the time taken was 8270 msec*
>>>
>>> *Experimental setup for TCP*
>>>
>>>    - android client (Motorola razr)
>>>    - java server (PC running Linux)
>>>    - Using a REQ-REP pattern(ping-pong)
>>>    - Sending 100/1000 messages to the server and 100/1000 back to
>>>    client(synchronous)
>>>    - Same as above, client sends a hello message to server and waits to
>>>    receive a world message before sending the next message.
>>>    - Both the devices were connected through wifi
>>>    - *On an avg:For 100 messages the time taken was 504 msec*
>>>    - *On an avg:For 1000 messages the time taken was 5240 msec*
>>>
>>> Is this excepted? or am i missing something or doing something wrong?
>>>
>>>
>>>
>>> Thanks,
>>>
>>> Ashwini
>>>
>>> _______________________________________________
>>> zeromq-dev mailing list
>>> zeromq-dev@lists.zeromq.org
>>> http://lists.zeromq.org/mailman/listinfo/zeromq-dev
>>>
>>>
>>
>> _______________________________________________
>> zeromq-dev mailing list
>> zeromq-dev@lists.zeromq.org
>> http://lists.zeromq.org/mailman/listinfo/zeromq-dev
>>
>>
>
> _______________________________________________
> zeromq-dev mailing list
> zeromq-dev@lists.zeromq.org
> http://lists.zeromq.org/mailman/listinfo/zeromq-dev
>
>
_______________________________________________
zeromq-dev mailing list
zeromq-dev@lists.zeromq.org
http://lists.zeromq.org/mailman/listinfo/zeromq-dev

Reply via email to