mirror of
https://github.com/zeromq/libzmq.git
synced 2025-05-29 07:25:56 +02:00
C perf tests are built non-optionally; C++ perf tests removed
This commit is contained in:
parent
1fbeba2fe3
commit
c08a7f8896
@ -1,10 +1,6 @@
|
|||||||
ACLOCAL_AMFLAGS = -I config
|
ACLOCAL_AMFLAGS = -I config
|
||||||
|
|
||||||
if BUILD_PERF
|
SUBDIRS = src doc perf devices
|
||||||
DIR_PERF = perf
|
|
||||||
endif
|
|
||||||
|
|
||||||
SUBDIRS = src doc $(DIR_PERF) devices
|
|
||||||
DIST_SUBDIRS = src doc perf devices
|
DIST_SUBDIRS = src doc perf devices
|
||||||
|
|
||||||
EXTRA_DIST = \
|
EXTRA_DIST = \
|
||||||
|
26
configure.in
26
configure.in
@ -374,22 +374,8 @@ if test "x$werror" = "xyes" -a "x$pgm_ext" = "xno"; then
|
|||||||
LIBZMQ_EXTRA_CXXFLAGS="${LIBZMQ_EXTRA_CXXFLAGS} -Werror"
|
LIBZMQ_EXTRA_CXXFLAGS="${LIBZMQ_EXTRA_CXXFLAGS} -Werror"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Perf
|
|
||||||
perf="no"
|
|
||||||
AC_ARG_WITH([perf], [AS_HELP_STRING([--with-perf],
|
|
||||||
[build performance tests [default=no]])], [with_perf=yes], [with_perf=no])
|
|
||||||
|
|
||||||
if test "x$with_perf" != "xno"; then
|
|
||||||
perf="yes"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if test "x$with_perf" = "xno" -a "x$with_pgm_examples" = "xyes"; then
|
|
||||||
AC_MSG_ERROR([cannot configure --with-pgm-examples without --with-perf.]);
|
|
||||||
fi
|
|
||||||
|
|
||||||
AM_CONDITIONAL(BUILD_PGM, test "x$pgm_ext" = "xyes")
|
AM_CONDITIONAL(BUILD_PGM, test "x$pgm_ext" = "xyes")
|
||||||
AM_CONDITIONAL(BUILD_NO_PGM, test "x$pgm_ext" = "xno")
|
AM_CONDITIONAL(BUILD_NO_PGM, test "x$pgm_ext" = "xno")
|
||||||
AM_CONDITIONAL(BUILD_PERF, test "x$perf" = "xyes")
|
|
||||||
AM_CONDITIONAL(ON_MINGW, test "x$on_mingw32" = "xyes")
|
AM_CONDITIONAL(ON_MINGW, test "x$on_mingw32" = "xyes")
|
||||||
AM_CONDITIONAL(BUILD_PGM_EXAMPLES, test "x$with_pgm_examples" = "xyes")
|
AM_CONDITIONAL(BUILD_PGM_EXAMPLES, test "x$with_pgm_examples" = "xyes")
|
||||||
AM_CONDITIONAL(INSTALL_MAN, test "x$install_man" = "xyes")
|
AM_CONDITIONAL(INSTALL_MAN, test "x$install_man" = "xyes")
|
||||||
@ -408,8 +394,7 @@ AC_TYPE_SIGNAL
|
|||||||
AC_CHECK_FUNCS(perror gettimeofday memset socket getifaddrs freeifaddrs)
|
AC_CHECK_FUNCS(perror gettimeofday memset socket getifaddrs freeifaddrs)
|
||||||
|
|
||||||
AC_OUTPUT(Makefile src/Makefile doc/Makefile
|
AC_OUTPUT(Makefile src/Makefile doc/Makefile
|
||||||
perf/Makefile perf/c/Makefile perf/cpp/Makefile \
|
perf/Makefile src/libzmq.pc \
|
||||||
src/libzmq.pc \
|
|
||||||
devices/Makefile devices/zmq_forwarder/Makefile \
|
devices/Makefile devices/zmq_forwarder/Makefile \
|
||||||
devices/zmq_streamer/Makefile devices/zmq_queue/Makefile)
|
devices/zmq_streamer/Makefile devices/zmq_queue/Makefile)
|
||||||
|
|
||||||
@ -423,13 +408,4 @@ case "${host_os}" in
|
|||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
AC_MSG_RESULT([])
|
|
||||||
AC_MSG_RESULT([ ******************************************************** ])
|
|
||||||
AC_MSG_RESULT([ 0MQ configuration summary])
|
|
||||||
AC_MSG_RESULT([ ******************************************************** ])
|
|
||||||
AC_MSG_RESULT([])
|
|
||||||
AC_MSG_RESULT([ Install dir: $prefix])
|
|
||||||
AC_MSG_RESULT([ PGM (EPGM) support: $pgm_ext])
|
|
||||||
AC_MSG_RESULT([ Performance tests: $perf])
|
|
||||||
AC_MSG_RESULT([])
|
|
||||||
|
|
||||||
|
131
perf/Makefile.am
131
perf/Makefile.am
@ -1,2 +1,129 @@
|
|||||||
SUBDIRS = c cpp
|
INCLUDES = -I$(top_builddir)/include
|
||||||
DIST_SUBDIRS = c cpp
|
|
||||||
|
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
|
||||||
|
@ -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
|
|
@ -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
|
|
||||||
|
|
@ -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;
|
|
||||||
}
|
|
@ -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;
|
|
||||||
}
|
|
@ -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;
|
|
||||||
}
|
|
@ -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;
|
|
||||||
}
|
|
Loading…
x
Reference in New Issue
Block a user