Hi Marten, I took the 0mq binding of Panu on SmalltalkHub and it worked out of the box for the simple hello world c client/server sample translated to pharo, slightly modified to send/receive 8k byte arrays. What I saw in this experiment is that the reader process (a pharo vm) was 100% cpu bound on a core at polling the message queue in , and I saw the 0mq thread poping up in process explorer and taking less than 1% cpu during the send/receive bench (5 sec bench of BlockClosure). Beeing 100% on polling doesn't hurt me, since the sample polls in a loop. However, the raw performance numbers is far from the ZnWebSocket experiment I made, and sounds "bizarre" to me: I had 500 block/sec against 10k with ZnSockets (send only performance of Zn is 18k). I think the "pattern" used in the sample may not be the best (I have to explore other patterns of 0mq: publish/subscribe, push/pull etc. ) and I know also that in a true client server the vm could do real work instead of polling (message queuing will be handled by 0mq) so the overall system throughput should be better, but still, the difference here hurts me (roughly a x20 factor !) I would be very interested by comments or advices based on your previous experiences with 0mq (or other) ? Thanks in advance Alain Le 07/10/2014 15:41, itlists@schrievkrom.de a écrit :
There are some good C libraries out there, which are suitable to connect programs with each other: a good example is 0MQ.
Marten