Try sending with DONTWAIT set so it is completely async. cr
On May 23, 2014, at 11:22 AM, artemv zmq <[email protected]> wrote: > Hey Panu, > > That helped (unfortunately partially) ... But still you made my day! Many > thanks. > > What I got now -- I can send fast all the way: from DEALER to-device--> > ROUTER to-> ROUTER from-device--> DEALER . This works really fast! Your > suggestion given me 500K/sec. Nice, but that's only half of what I need, > because opposite flow gives ~ 2 or 3 K/sec. Also I see that Sender process > using 60% of CPU while Receiver using ~ 5 % of CPU, so most of the time > Receiver now blocking on sending response back. I debugged a bit and > found that bottleneck is .send() method on Receiver. So, in short: the > problem now -- we can send fast but can't reply fast . > > Any ideas? > > > > > 2014-05-23 18:06 GMT+03:00 Panu Wetterstrand <[email protected]>: > Yes. Then there is no unnecessary poll calls. > > 23.5.2014 17.48 kirjoitti "artemv zmq" <[email protected]>: > > Panu Wetterstrand , > > > Do u mean like this: > > ... > for (; ; ) { > poller.poll(1000); > if (poller.pollin(0)) { > // block here and .recv() from socket until .recv() return null . > } > } > ... > > > Is this is what you are proposing? > > > Thanks for heads up / > > > > > 2014-05-23 17:22 GMT+03:00 Panu Wetterstrand <[email protected]>: > Sorry. Event count relates to sockets so that is fine but try to read until > socket is empty and recv returns nil. > > 23.5.2014 17.16 kirjoitti "Panu Wetterstrand" <[email protected]>: > > You should handle all events before calling poll again. Poll returns event > count. Only with phone so cant write example. > > 22.5.2014 21.21 kirjoitti "artemv zmq" <[email protected]>: > I'm following advice from a guide to come with as-simple-solution-as-possible > before moving further, and experiencing poor performance on a very simple > scenario. > > My test case is to check how ROUTER/DEALER constructions are working, how far > they scale. My environment: > windows_7_64bit/java7/4xCPU/8g/zmq-3.2.2/jzmq-3.0.0 > > Got two java processes. One process(called Sender) hosts ROUTER-ROUTER device > and forever-loop DEALER constantly sending "hello zmq world" message. > Second process(called Receiver) is hosting single DEALER which is sort of > simple worker -- receives message and sends it back. > > The whole point is measure how much messages per sec I can get at this very > raw scenario. Here's java code: > > Sender -- http://pastebin.com/mM7dqvSw > Receiver -- http://pastebin.com/dS2SLA2G > > > The test result ~ 40K/sec which is much-much less than I expected. Because > you can't have two java processes (both taking 50% cpu) and rendering 40K > at "hello world" scenario.. > > > > Thanks in advance for a help. > > _______________________________________________ > zeromq-dev mailing list > [email protected] > http://lists.zeromq.org/mailman/listinfo/zeromq-dev > > > _______________________________________________ > zeromq-dev mailing list > [email protected] > http://lists.zeromq.org/mailman/listinfo/zeromq-dev > > > > _______________________________________________ > zeromq-dev mailing list > [email protected] > http://lists.zeromq.org/mailman/listinfo/zeromq-dev > > > _______________________________________________ > zeromq-dev mailing list > [email protected] > http://lists.zeromq.org/mailman/listinfo/zeromq-dev > > > _______________________________________________ > zeromq-dev mailing list > [email protected] > http://lists.zeromq.org/mailman/listinfo/zeromq-dev
_______________________________________________ zeromq-dev mailing list [email protected] http://lists.zeromq.org/mailman/listinfo/zeromq-dev
