[zeromq-dev] Profiling and 0mq

hp010170 hp010170 at gmail.com
Thu Jun 14 12:29:49 CEST 2012


I was just wondering if someone had come across this lately; as I have 
been trying to run the GNU profiling/coverage tools and also the Google 
Performance Tools (gperftools), but both seem to yield the same problem:

The library was built from master using
./configure --with-gcov=yes CXXFLAGS='-pg' CFLAGS='-pg'

--xx--
hp$ ./perf/inproc_lat 10 1000000
message size: 10 [B]
roundtrip count: 1000000
error in zmq_recvmsg: Interrupted system call

hp$ ./perf/inproc_lat 20 10000
message size: 20 [B]
roundtrip count: 10000
average latency: 39.693 [us]

hp$ ./perf/inproc_thr 20 100000
message size: 20 [B]
message count: 100000
error in zmq_recvmsg: Interrupted system call

hp$ ./perf/inproc_thr 20 10000
message size: 20 [B]
message count: 10000
mean throughput: 101855 [msg/s]
mean throughput: 16.297 [Mb/s]
--xx--

Clearly that's happening because of EINTR not being handled in the 
(performance) tests, dependant upon profiling granularity.

The 6 million dollar questions being:

1. Should they be handled in the perf/*.cpp files to set an example and 
consequently make profiling work out of the box?
2. Am I barking up the wrong tree?

In case of [1], as you may know in REQ/REP examples, it is not just a 
matter of retrying, since that returns EFSM due to the strict 
alternating pattern; unless I have read the manual pages incorrectly.

I would appreciate if people familiar in the relevant dark arts can shed 
some light on this matter.

-HP




More information about the zeromq-dev mailing list