From 90194036bf824d78e13955ab931a70e929d356c1 Mon Sep 17 00:00:00 2001 From: Thomas Rodgers Date: Sat, 10 Jan 2015 16:44:55 -0600 Subject: [PATCH] Increase size of zmq_msg_t to 64 bytes Increasing it would have at least two benefits - * More messages would be 'VSM' messages, so it would reduce allocation overhead a bit. * Remove any chance of false sharing of things that are, by design, pushed by value onto a ypipe_t which is shared between two threads. The only downside I see is slightly increased memory consumption on memory constrained applications. - Full discussion of this rationale is part of issue #1295 --- include/zmq.h | 2 +- src/msg.hpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/include/zmq.h b/include/zmq.h index a01ed01d..163fc666 100644 --- a/include/zmq.h +++ b/include/zmq.h @@ -195,7 +195,7 @@ ZMQ_EXPORT int zmq_ctx_destroy (void *context); /* 0MQ message definition. */ /******************************************************************************/ -typedef struct zmq_msg_t {unsigned char _ [48];} zmq_msg_t; +typedef struct zmq_msg_t {unsigned char _ [64];} zmq_msg_t; typedef void (zmq_free_fn) (void *data, void *hint); diff --git a/src/msg.hpp b/src/msg.hpp index ea2bb4e4..04eb8f63 100644 --- a/src/msg.hpp +++ b/src/msg.hpp @@ -92,7 +92,7 @@ namespace zmq // Size in bytes of the largest message that is still copied around // rather than being reference-counted. - enum { msg_t_size = 48 }; + enum { msg_t_size = 64 }; enum { max_vsm_size = msg_t_size - (8 + sizeof (metadata_t *) + 3) }; // Shared message buffer. Message data are either allocated in one