Hi,
I've been writing a benchmark to verify ZeroMQ's performance is near line-rate
on the machines I'm using. However, I keep running into the issue of ZMQ
allocating memory on the sender's side equal to the amount I'm sending. If I
want to send more data than I have physical memory the program will exit with
an "out of memory" error.
According to Valgrind everything should be fine concerning leaks. Setting
ZQM_HWM or ZMQ_RCVBUF doesn't seem to have any effect whatsoever.
Am I doing something wrong?
Here's an excert of the relevant code:
// setup
zmq::context_t* ctx;
zmq::socket_t* socket;
string address;
address = constructAddress(globalArgs->transportProtocol, globalArgs->host,
globalArgs->port);
ctx = new zmq::context_t(1);
socket = new zmq::socket_t(*ctx, ZMQ_DEALER);
socket->connect(address.c_str());
// run
unsigned int i;
// create a new message buffer
zmq::message_t msg(msgSize);
// send messages
for (i=0; i < numIter; i++) {
memset(msg.data(), 0, msgSize);
socket->send(msg);
msg.rebuild(msgSize);
}
// notify server of EOF
string strEOF = "EOF";
memset(msg.data(), 0, msgSize);
strEOF.copy((char *)msg.data(), strEOF.size());
socket->send(msg);
// clean up
socket->close();
delete socket;
delete ctx;
Thanks,
Clemens
_______________________________________________
zeromq-dev mailing list
[email protected]
http://lists.zeromq.org/mailman/listinfo/zeromq-dev