diff options
Diffstat (limited to 'perf')
-rw-r--r-- | perf/Makefile.am | 131 | ||||
-rw-r--r-- | perf/c/Makefile.am | 129 | ||||
-rw-r--r-- | perf/cpp/Makefile.am | 20 | ||||
-rw-r--r-- | perf/cpp/local_lat.cpp | 52 | ||||
-rw-r--r-- | perf/cpp/local_thr.cpp | 71 | ||||
-rw-r--r-- | perf/cpp/remote_lat.cpp | 63 | ||||
-rw-r--r-- | perf/cpp/remote_thr.cpp | 54 | ||||
-rw-r--r-- | perf/local_lat.c (renamed from perf/c/local_lat.c) | 0 | ||||
-rw-r--r-- | perf/local_thr.c (renamed from perf/c/local_thr.c) | 0 | ||||
-rw-r--r-- | perf/remote_lat.c (renamed from perf/c/remote_lat.c) | 0 | ||||
-rw-r--r-- | perf/remote_thr.c (renamed from perf/c/remote_thr.c) | 0 |
11 files changed, 129 insertions, 391 deletions
diff --git a/perf/Makefile.am b/perf/Makefile.am index 7e87d68..d48dcee 100644 --- a/perf/Makefile.am +++ b/perf/Makefile.am @@ -1,2 +1,129 @@ -SUBDIRS = c cpp -DIST_SUBDIRS = c cpp +INCLUDES = -I$(top_builddir)/include + +if BUILD_PGM_EXAMPLES +PGM_EXAMPLES_BINS = pgmsend pgmrecv +endif + +noinst_PROGRAMS = local_lat remote_lat local_thr remote_thr $(PGM_EXAMPLES_BINS) + +local_lat_LDADD = $(top_builddir)/src/libzmq.la +local_lat_SOURCES = local_lat.c +local_lat_CXXFLAGS = -Wall -pedantic -Werror + +remote_lat_LDADD = $(top_builddir)/src/libzmq.la +remote_lat_SOURCES = remote_lat.c +remote_lat_CXXFLAGS = -Wall -pedantic -Werror + +local_thr_LDADD = $(top_builddir)/src/libzmq.la +local_thr_SOURCES = local_thr.c +local_thr_CXXFLAGS = -Wall -pedantic -Werror + +remote_thr_LDADD = $(top_builddir)/src/libzmq.la +remote_thr_SOURCES = remote_thr.c +remote_thr_CXXFLAGS = -Wall -pedantic -Werror + +if BUILD_PGM_EXAMPLES + +if ON_MINGW +pgmexamples_diff_flags = \ + -D_WIN32_WINNT=0x0501 \ + -DCONFIG_HAVE_IFR_NETMASK \ + -DCONFIG_BIND_INADDR_ANY \ + -DCONFIG_GALOIS_MUL_LUT \ + -DIF_NAMESIZE=256 \ + -DPGM_GNUC_INTERNAL=G_GNUC_INTERNAL \ + -DCONFIG_HAVE_WSACMSGHDR \ + -DGETTEXT_PACKAGE='"pgm"' \ + -DG_LOG_DOMAIN='"Pgm"' + +else +pgmexamples_diff_flags = \ + -D__need_IOV_MAX \ + -DCONFIG_HAVE_PSELECT \ + -DCONFIG_HAVE_POLL \ + -DCONFIG_HAVE_PPOLL \ + -DCONFIG_HAVE_EPOLL \ + -DCONFIG_HAVE_CLOCK_GETTIME \ + -DCONFIG_HAVE_CLOCK_NANOSLEEP \ + -DCONFIG_HAVE_NANOSLEEP \ + -DCONFIG_HAVE_USLEEP \ + -DCONFIG_HAVE_RTC \ + -DCONFIG_HAVE_TSC \ + -DCONFIG_HAVE_IFR_NETMASK \ + -DCONFIG_HAVE_GETIFADDRS \ + -DCONFIG_HAVE_GETHOSTBYNAME2 \ + -DCONFIG_HAVE_GETPROTOBYNAME_R \ + -DCONFIG_BIND_INADDR_ANY \ + -DCONFIG_GALOIS_MUL_LUT \ + -DCONFIG_HAVE_MCAST_JOIN \ + -DCONFIG_HAVE_IP_MREQN \ + -DCONFIG_HAVE_SPRINTF_GROUPING \ + -DCONFIG_HAVE_HPET \ + -DPGM_GNUC_INTERNAL=G_GNUC_INTERNAL \ + -DGETTEXT_PACKAGE='"pgm"' \ + -DG_LOG_DOMAIN='"Pgm"' +endif + +nodist_pgmsend_SOURCES = ../../foreign/openpgm/@pgm_basename@/openpgm/pgm/examples/pgmsend.c +pgmsend_LDADD = $(top_builddir)/src/libzmq.la +pgmsend_CFLAGS = -I$(top_srcdir)/foreign/openpgm/@pgm_basename@/openpgm/pgm/include/ -Wall @LIBZMQ_EXTRA_CXXFLAGS@ \ + -pipe \ + -Wall \ + -Wextra \ + -Wfloat-equal \ + -Wshadow \ + -Wunsafe-loop-optimizations \ + -Wpointer-arith \ + -Wbad-function-cast \ + -Wcast-qual \ + -Wcast-align \ + -Wwrite-strings \ + -Waggregate-return \ + -Wstrict-prototypes \ + -Wold-style-definition \ + -Wmissing-prototypes \ + -Wmissing-declarations \ + -Wmissing-noreturn \ + -Wmissing-format-attribute \ + -Wredundant-decls \ + -Wnested-externs \ + -Winline \ + -pedantic \ + -std=gnu99 \ + --param max-inline-insns-single=600 \ + -D_REENTRANT \ + -D_GNU_SOURCE \ + ${pgmexamples_diff_flags} + +nodist_pgmrecv_SOURCES = ../../foreign/openpgm/@pgm_basename@/openpgm/pgm/examples/pgmrecv.c +pgmrecv_LDADD = $(top_builddir)/src/libzmq.la +pgmrecv_CFLAGS = -I$(top_srcdir)/foreign/openpgm/@pgm_basename@/openpgm/pgm/include/ -Wall @LIBZMQ_EXTRA_CXXFLAGS@ \ + -pipe \ + -Wall \ + -Wextra \ + -Wfloat-equal \ + -Wshadow \ + -Wunsafe-loop-optimizations \ + -Wpointer-arith \ + -Wbad-function-cast \ + -Wcast-qual \ + -Wcast-align \ + -Wwrite-strings \ + -Waggregate-return \ + -Wstrict-prototypes \ + -Wold-style-definition \ + -Wmissing-prototypes \ + -Wmissing-declarations \ + -Wmissing-noreturn \ + -Wmissing-format-attribute \ + -Wredundant-decls \ + -Wnested-externs \ + -Winline \ + -pedantic \ + -std=gnu99 \ + --param max-inline-insns-single=600 \ + -D_REENTRANT \ + -D_GNU_SOURCE \ + ${pgmexamples_diff_flags} + +endif diff --git a/perf/c/Makefile.am b/perf/c/Makefile.am deleted file mode 100644 index d48dcee..0000000 --- a/perf/c/Makefile.am +++ /dev/null @@ -1,129 +0,0 @@ -INCLUDES = -I$(top_builddir)/include - -if BUILD_PGM_EXAMPLES -PGM_EXAMPLES_BINS = pgmsend pgmrecv -endif - -noinst_PROGRAMS = local_lat remote_lat local_thr remote_thr $(PGM_EXAMPLES_BINS) - -local_lat_LDADD = $(top_builddir)/src/libzmq.la -local_lat_SOURCES = local_lat.c -local_lat_CXXFLAGS = -Wall -pedantic -Werror - -remote_lat_LDADD = $(top_builddir)/src/libzmq.la -remote_lat_SOURCES = remote_lat.c -remote_lat_CXXFLAGS = -Wall -pedantic -Werror - -local_thr_LDADD = $(top_builddir)/src/libzmq.la -local_thr_SOURCES = local_thr.c -local_thr_CXXFLAGS = -Wall -pedantic -Werror - -remote_thr_LDADD = $(top_builddir)/src/libzmq.la -remote_thr_SOURCES = remote_thr.c -remote_thr_CXXFLAGS = -Wall -pedantic -Werror - -if BUILD_PGM_EXAMPLES - -if ON_MINGW -pgmexamples_diff_flags = \ - -D_WIN32_WINNT=0x0501 \ - -DCONFIG_HAVE_IFR_NETMASK \ - -DCONFIG_BIND_INADDR_ANY \ - -DCONFIG_GALOIS_MUL_LUT \ - -DIF_NAMESIZE=256 \ - -DPGM_GNUC_INTERNAL=G_GNUC_INTERNAL \ - -DCONFIG_HAVE_WSACMSGHDR \ - -DGETTEXT_PACKAGE='"pgm"' \ - -DG_LOG_DOMAIN='"Pgm"' - -else -pgmexamples_diff_flags = \ - -D__need_IOV_MAX \ - -DCONFIG_HAVE_PSELECT \ - -DCONFIG_HAVE_POLL \ - -DCONFIG_HAVE_PPOLL \ - -DCONFIG_HAVE_EPOLL \ - -DCONFIG_HAVE_CLOCK_GETTIME \ - -DCONFIG_HAVE_CLOCK_NANOSLEEP \ - -DCONFIG_HAVE_NANOSLEEP \ - -DCONFIG_HAVE_USLEEP \ - -DCONFIG_HAVE_RTC \ - -DCONFIG_HAVE_TSC \ - -DCONFIG_HAVE_IFR_NETMASK \ - -DCONFIG_HAVE_GETIFADDRS \ - -DCONFIG_HAVE_GETHOSTBYNAME2 \ - -DCONFIG_HAVE_GETPROTOBYNAME_R \ - -DCONFIG_BIND_INADDR_ANY \ - -DCONFIG_GALOIS_MUL_LUT \ - -DCONFIG_HAVE_MCAST_JOIN \ - -DCONFIG_HAVE_IP_MREQN \ - -DCONFIG_HAVE_SPRINTF_GROUPING \ - -DCONFIG_HAVE_HPET \ - -DPGM_GNUC_INTERNAL=G_GNUC_INTERNAL \ - -DGETTEXT_PACKAGE='"pgm"' \ - -DG_LOG_DOMAIN='"Pgm"' -endif - -nodist_pgmsend_SOURCES = ../../foreign/openpgm/@pgm_basename@/openpgm/pgm/examples/pgmsend.c -pgmsend_LDADD = $(top_builddir)/src/libzmq.la -pgmsend_CFLAGS = -I$(top_srcdir)/foreign/openpgm/@pgm_basename@/openpgm/pgm/include/ -Wall @LIBZMQ_EXTRA_CXXFLAGS@ \ - -pipe \ - -Wall \ - -Wextra \ - -Wfloat-equal \ - -Wshadow \ - -Wunsafe-loop-optimizations \ - -Wpointer-arith \ - -Wbad-function-cast \ - -Wcast-qual \ - -Wcast-align \ - -Wwrite-strings \ - -Waggregate-return \ - -Wstrict-prototypes \ - -Wold-style-definition \ - -Wmissing-prototypes \ - -Wmissing-declarations \ - -Wmissing-noreturn \ - -Wmissing-format-attribute \ - -Wredundant-decls \ - -Wnested-externs \ - -Winline \ - -pedantic \ - -std=gnu99 \ - --param max-inline-insns-single=600 \ - -D_REENTRANT \ - -D_GNU_SOURCE \ - ${pgmexamples_diff_flags} - -nodist_pgmrecv_SOURCES = ../../foreign/openpgm/@pgm_basename@/openpgm/pgm/examples/pgmrecv.c -pgmrecv_LDADD = $(top_builddir)/src/libzmq.la -pgmrecv_CFLAGS = -I$(top_srcdir)/foreign/openpgm/@pgm_basename@/openpgm/pgm/include/ -Wall @LIBZMQ_EXTRA_CXXFLAGS@ \ - -pipe \ - -Wall \ - -Wextra \ - -Wfloat-equal \ - -Wshadow \ - -Wunsafe-loop-optimizations \ - -Wpointer-arith \ - -Wbad-function-cast \ - -Wcast-qual \ - -Wcast-align \ - -Wwrite-strings \ - -Waggregate-return \ - -Wstrict-prototypes \ - -Wold-style-definition \ - -Wmissing-prototypes \ - -Wmissing-declarations \ - -Wmissing-noreturn \ - -Wmissing-format-attribute \ - -Wredundant-decls \ - -Wnested-externs \ - -Winline \ - -pedantic \ - -std=gnu99 \ - --param max-inline-insns-single=600 \ - -D_REENTRANT \ - -D_GNU_SOURCE \ - ${pgmexamples_diff_flags} - -endif diff --git a/perf/cpp/Makefile.am b/perf/cpp/Makefile.am deleted file mode 100644 index 37b970c..0000000 --- a/perf/cpp/Makefile.am +++ /dev/null @@ -1,20 +0,0 @@ -INCLUDES = -I$(top_srcdir)/include - -noinst_PROGRAMS = local_lat remote_lat local_thr remote_thr - -local_lat_LDADD = $(top_builddir)/src/libzmq.la -local_lat_SOURCES = local_lat.cpp -local_lat_CXXFLAGS = -Wall -pedantic -Werror - -remote_lat_LDADD = $(top_builddir)/src/libzmq.la -remote_lat_SOURCES = remote_lat.cpp -remote_lat_CXXFLAGS = -Wall -pedantic -Werror - -local_thr_LDADD = $(top_builddir)/src/libzmq.la -local_thr_SOURCES = local_thr.cpp -local_thr_CXXFLAGS = -Wall -pedantic -Werror - -remote_thr_LDADD = $(top_builddir)/src/libzmq.la -remote_thr_SOURCES = remote_thr.cpp -remote_thr_CXXFLAGS = -Wall -pedantic -Werror - diff --git a/perf/cpp/local_lat.cpp b/perf/cpp/local_lat.cpp deleted file mode 100644 index 6b7cb1a..0000000 --- a/perf/cpp/local_lat.cpp +++ /dev/null @@ -1,52 +0,0 @@ -/* - Copyright (c) 2007-2010 iMatix Corporation - - This file is part of 0MQ. - - 0MQ is free software; you can redistribute it and/or modify it under - the terms of the Lesser GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - 0MQ is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - Lesser GNU General Public License for more details. - - You should have received a copy of the Lesser GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -#include <zmq.hpp> -#include <stdio.h> -#include <stdlib.h> -#include <assert.h> -#include <stddef.h> - -int main (int argc, char *argv []) -{ - if (argc != 4) { - printf ("usage: local_lat <bind-to> <message-size> " - "<roundtrip-count>\n"); - return 1; - } - const char *bind_to = argv [1]; - size_t message_size = (size_t) atoi (argv [2]); - int roundtrip_count = atoi (argv [3]); - - zmq::context_t ctx (1, 1); - - zmq::socket_t s (ctx, ZMQ_REP); - s.bind (bind_to); - - for (int i = 0; i != roundtrip_count; i++) { - zmq::message_t msg; - s.recv (&msg); - assert (msg.size () == message_size); - s.send (msg); - } - - zmq_sleep (1); - - return 0; -} diff --git a/perf/cpp/local_thr.cpp b/perf/cpp/local_thr.cpp deleted file mode 100644 index acfc02d..0000000 --- a/perf/cpp/local_thr.cpp +++ /dev/null @@ -1,71 +0,0 @@ -/* - Copyright (c) 2007-2010 iMatix Corporation - - This file is part of 0MQ. - - 0MQ is free software; you can redistribute it and/or modify it under - the terms of the Lesser GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - 0MQ is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - Lesser GNU General Public License for more details. - - You should have received a copy of the Lesser GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -#include <zmq.hpp> -#include <stdio.h> -#include <stdlib.h> -#include <assert.h> -#include <stddef.h> - -int main (int argc, char *argv []) -{ - if (argc != 4) { - printf ("usage: local_thr <bind-to> <message-size> " - "<message-count>\n"); - return 1; - } - const char *bind_to = argv [1]; - size_t message_size = (size_t) atoi (argv [2]); - int message_count = atoi (argv [3]); - - zmq::context_t ctx (1, 1); - - zmq::socket_t s (ctx, ZMQ_SUB); - - s.setsockopt (ZMQ_SUBSCRIBE , "", 0); - - // Add your socket options here. - // For example ZMQ_RATE, ZMQ_RECOVERY_IVL and ZMQ_MCAST_LOOP for PGM. - - s.bind (bind_to); - - zmq::message_t msg; - s.recv (&msg); - assert (msg.size () == message_size); - - void *watch = zmq_stopwatch_start (); - - for (int i = 1; i != message_count; i++) { - s.recv (&msg); - assert (msg.size () == message_size); - } - - unsigned long elapsed = zmq_stopwatch_stop (watch); - - unsigned long throughput = (unsigned long) - ((double) message_count / (double) elapsed * 1000000); - double megabits = (double) (throughput * message_size * 8) / 1000000; - - printf ("message size: %d [B]\n", (int) message_size); - printf ("message count: %d\n", (int) message_count); - printf ("mean throughput: %d [msg/s]\n", (int) throughput); - printf ("mean throughput: %.3f [Mb/s]\n", (double) megabits); - - return 0; -} diff --git a/perf/cpp/remote_lat.cpp b/perf/cpp/remote_lat.cpp deleted file mode 100644 index 0d75c82..0000000 --- a/perf/cpp/remote_lat.cpp +++ /dev/null @@ -1,63 +0,0 @@ -/* - Copyright (c) 2007-2010 iMatix Corporation - - This file is part of 0MQ. - - 0MQ is free software; you can redistribute it and/or modify it under - the terms of the Lesser GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - 0MQ is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - Lesser GNU General Public License for more details. - - You should have received a copy of the Lesser GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -#include <zmq.hpp> -#include <stdio.h> -#include <stdlib.h> -#include <assert.h> -#include <stddef.h> -#include <string.h> - -int main (int argc, char *argv []) -{ - if (argc != 4) { - printf ("usage: remote_lat <connect-to> <message-size> " - "<roundtrip-count>\n"); - return 1; - } - const char *connect_to = argv [1]; - size_t message_size = (size_t) atoi (argv [2]); - int roundtrip_count = atoi (argv [3]); - - zmq::context_t ctx (1, 1); - - zmq::socket_t s (ctx, ZMQ_REQ); - s.connect (connect_to); - - zmq::message_t msg (message_size); - memset (msg.data (), 0, message_size); - - void *watch = zmq_stopwatch_start (); - - for (int i = 0; i != roundtrip_count; i++) { - s.send (msg); - s.recv (&msg); - assert (msg.size () == message_size); - } - - unsigned long elapsed = zmq_stopwatch_stop (watch); - - double latency = (double) elapsed / (roundtrip_count * 2); - - printf ("message size: %d [B]\n", (int) message_size); - printf ("roundtrip count: %d\n", (int) roundtrip_count); - printf ("mean latency: %.3f [us]\n", (double) latency); - - return 0; -} diff --git a/perf/cpp/remote_thr.cpp b/perf/cpp/remote_thr.cpp deleted file mode 100644 index 4985416..0000000 --- a/perf/cpp/remote_thr.cpp +++ /dev/null @@ -1,54 +0,0 @@ -/* - Copyright (c) 2007-2010 iMatix Corporation - - This file is part of 0MQ. - - 0MQ is free software; you can redistribute it and/or modify it under - the terms of the Lesser GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - 0MQ is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - Lesser GNU General Public License for more details. - - You should have received a copy of the Lesser GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ - -#include <zmq.hpp> -#include <stdio.h> -#include <stdlib.h> -#include <assert.h> -#include <stddef.h> - -int main (int argc, char *argv []) -{ - if (argc != 4) { - printf ("usage: remote_thr <connect-to> <message-size> " - "<message-count>\n"); - return 1; - } - const char *connect_to = argv [1]; - size_t message_size = (size_t) atoi (argv [2]); - int message_count = atoi (argv [3]); - - zmq::context_t ctx (1, 1); - - zmq::socket_t s (ctx, ZMQ_PUB); - - // Add your socket options here. - // For example ZMQ_RATE, ZMQ_RECOVERY_IVL and ZMQ_MCAST_LOOP for PGM. - - s.connect (connect_to); - - for (int i = 0; i != message_count; i++) { - zmq::message_t msg (message_size); - s.send (msg); - } - - zmq_sleep (10); - - return 0; -} diff --git a/perf/c/local_lat.c b/perf/local_lat.c index bd71f82..bd71f82 100644 --- a/perf/c/local_lat.c +++ b/perf/local_lat.c diff --git a/perf/c/local_thr.c b/perf/local_thr.c index cfebd2d..cfebd2d 100644 --- a/perf/c/local_thr.c +++ b/perf/local_thr.c diff --git a/perf/c/remote_lat.c b/perf/remote_lat.c index 901afd5..901afd5 100644 --- a/perf/c/remote_lat.c +++ b/perf/remote_lat.c diff --git a/perf/c/remote_thr.c b/perf/remote_thr.c index 43956e6..43956e6 100644 --- a/perf/c/remote_thr.c +++ b/perf/remote_thr.c |