Go to file
Siddhesh Poyarekar 0cd2828695 benchtest: script to compare two benchmarks
This script is a sample implementation that uses import_bench to
construct two benchmark objects and compare them.  If detailed timing
information is available (when one does `make DETAILED=1 bench`), it
writes out graphs for all functions it benchmarks and prints
significant differences in timings of the two benchmark runs.  If
detailed timing information is not available, it points out
significant differences in aggregate times.

Call this script as follows:

  compare_bench.py schema_file.json bench1.out bench2.out

Alternatively, if one wants to set a different threshold for warnings
(default is a 10% difference):

  compare_bench.py schema_file.json bench1.out bench2.out 25

The threshold in the example above is 25%.  schema_file.json is the
JSON schema (which is $srcdir/benchtests/scripts/benchout.schema.json
for the benchmark output file) and bench1.out and bench2.out are the
two benchmark output files to compare.

The key functionality here is the compress_timings function which
groups together points that are close together into a single point
that is the mean of all its representative points.  Any point in such
a group is at most 1.5x the smallest point in that group.  The
detailed derivation is a comment in the function.

	* benchtests/scripts/compare_bench.py: New file.
	* benchtests/scripts/import_bench.py (mean): New function.
	(split_list): Likewise.
	(do_for_all_timings): Likewise.
	(compress_timings): Likewise.
2015-06-01 23:14:11 +05:30
argp
assert
benchtests benchtest: script to compare two benchmarks 2015-06-01 23:14:11 +05:30
bits This patch adds infrastructure for addition of SIMD 2015-05-14 18:07:06 +03:00
catgets
conf
conform struct stat is not posix conform 2015-05-26 22:27:24 +05:30
crypt
csu
ctype
debug
dirent Nit fixes in last change. 2015-05-13 12:39:01 -07:00
dlfcn
elf Make sure that calloc is called at least once 2015-05-28 05:06:53 -07:00
gmon
gnulib
grp
gshadow
hesiod
hurd
iconv
iconvdata
include Localplt testing for vector math library and libmvec_hidden_* macro series. 2015-05-25 21:20:20 +03:00
inet * inet/rcmd.c (rresvport_af): Change ss to anonymous union 2015-05-19 13:09:01 -07:00
intl Remove obsolete aliases that broke 'locale -a' 2015-05-22 15:12:01 -07:00
io posix_fallocate, posix_fallocate64 stub: Do not set errno 2015-04-24 20:08:43 +02:00
libidn
libio Fix indentation to match nesting in previous commit 2015-05-22 13:35:45 +02:00
locale Improve strcoll with strdiff. 2015-05-12 11:37:52 +02:00
localedata Fix sorting order for Ukrainian locale (BZ 17293) 2015-05-26 23:51:18 +05:30
login
mach
malloc Fix for test "malloc_usable_size: expected 7 but got 11" 2015-05-19 12:10:26 -07:00
manual Fix typo in safety annotations in envz_remove 2015-05-20 02:36:13 +05:30
math Add missing math_private includes. 2015-05-20 12:48:48 +00:00
mathvec This is update for configure, build and install of vector math library. 2015-05-14 18:07:06 +03:00
misc
nis Separate internal state between getXXent and getXXbyYY NSS calls (bug 18007) 2015-05-11 10:41:49 +02:00
nptl Split timed-wait functions out of nptl/lowlevellock.c. 2015-05-26 14:49:13 -07:00
nptl_db
nscd
nss Separate internal state between getXXent and getXXbyYY NSS calls (bug 18007) 2015-05-11 10:41:49 +02:00
po
posix Restore _POSIX2_C_VERSION definition (bug 438). 2015-05-22 17:14:04 +00:00
pwd
resolv * resolv/res_hconf.c (_res_hconf_reorder_addrs): Use a union to 2015-06-01 09:00:05 -07:00
resource
rt
scripts
setjmp
shadow
signal
socket
soft-fp Fix soft-fp fma for -Wuninitialized. 2015-05-22 20:28:50 +00:00
stdio-common vfprintf: Remove label name switching for the jump table 2015-05-21 16:48:46 +02:00
stdlib Fix monetary.h comment 2015-05-27 08:07:07 +05:30
streams
string Fix pathconf basename namespace (bug 18444). 2015-05-22 17:09:36 +00:00
sunrpc
sysdeps Update powerpc-fpu libm-test-ulps. 2015-05-29 09:42:55 -03:00
sysvipc
termios
time Check tzspec_len == 0 in __tzfile_read 2015-04-27 09:57:51 -07:00
timezone Make time zone file parser more robust [BZ #17715] 2015-04-24 17:34:48 +02:00
wcsmbs Improve strcoll with strdiff. 2015-05-12 11:37:52 +02:00
wctype
.gitattributes
.gitignore Add *.pyc to .gitignore 2015-05-18 15:26:26 +05:30
abi-tags Add arm-nacl port. 2015-04-17 09:02:19 -07:00
aclocal.m4
BUGS
ChangeLog benchtest: script to compare two benchmarks 2015-06-01 23:14:11 +05:30
ChangeLog.1
ChangeLog.2
ChangeLog.3
ChangeLog.4
ChangeLog.5
ChangeLog.6
ChangeLog.7
ChangeLog.8
ChangeLog.9
ChangeLog.10
ChangeLog.11
ChangeLog.12
ChangeLog.13
ChangeLog.14
ChangeLog.15
ChangeLog.16
ChangeLog.17
ChangeLog.old-ports
ChangeLog.old-ports-aarch64
ChangeLog.old-ports-aix
ChangeLog.old-ports-alpha
ChangeLog.old-ports-am33
ChangeLog.old-ports-arm
ChangeLog.old-ports-cris
ChangeLog.old-ports-hppa
ChangeLog.old-ports-ia64
ChangeLog.old-ports-linux-generic
ChangeLog.old-ports-m68k
ChangeLog.old-ports-microblaze
ChangeLog.old-ports-mips
ChangeLog.old-ports-powerpc
ChangeLog.old-ports-tile
config.h.in [AArch64] Fix the big endian loader name. 2015-05-01 13:58:55 +01:00
config.make.in
configure This is update for configure, build and install of vector math library. 2015-05-14 18:07:06 +03:00
configure.ac This is update for configure, build and install of vector math library. 2015-05-14 18:07:06 +03:00
CONFORMANCE
COPYING
COPYING.LIB
cppflags-iterator.mk
extra-lib.mk
extra-modules.mk
gen-locales.mk Split locale generation snippet into a separate file 2015-05-13 13:05:28 +05:30
INSTALL
libc-abis
LICENSES
Makeconfig This is update for configure, build and install of vector math library. 2015-05-14 18:07:06 +03:00
Makefile Succeed if make check does not report any errors 2015-05-19 06:36:29 +05:30
Makefile.in
Makerules
NAMESPACE
NEWS Make sure that calloc is called at least once 2015-05-28 05:06:53 -07:00
o-iterator.mk
PROJECTS
README
Rules
shlib-versions This is update for configure, build and install of vector math library. 2015-05-14 18:07:06 +03:00
test-skeleton.c Ensure `wint_t' is defined before use in include/stdio.h 2015-05-18 12:28:06 +05:30
version.h
WUR-REPORT

This directory contains the sources of the GNU C Library.
See the file "version.h" for what release version you have.

The GNU C Library is the standard system C library for all GNU systems,
and is an important part of what makes up a GNU system.  It provides the
system API for all programs written in C and C-compatible languages such
as C++ and Objective C; the runtime facilities of other programming
languages use the C library to access the underlying operating system.

In GNU/Linux systems, the C library works with the Linux kernel to
implement the operating system behavior seen by user applications.
In GNU/Hurd systems, it works with a microkernel and Hurd servers.

The GNU C Library implements much of the POSIX.1 functionality in the
GNU/Hurd system, using configurations i[4567]86-*-gnu.  The current
GNU/Hurd support requires out-of-tree patches that will eventually be
incorporated into an official GNU C Library release.

When working with Linux kernels, this version of the GNU C Library
requires Linux kernel version 2.6.32 or later.

Also note that the shared version of the libgcc_s library must be
installed for the pthread library to work correctly.

The GNU C Library supports these configurations for using Linux kernels:

	aarch64*-*-linux-gnu
	alpha*-*-linux-gnu
	arm-*-linux-gnueabi
	hppa-*-linux-gnu	Not currently functional without patches.
	i[4567]86-*-linux-gnu
	x86_64-*-linux-gnu	Can build either x86_64 or x32
	ia64-*-linux-gnu
	m68k-*-linux-gnu
	microblaze*-*-linux-gnu
	mips-*-linux-gnu
	mips64-*-linux-gnu
	powerpc-*-linux-gnu	Hardware or software floating point, BE only.
	powerpc64*-*-linux-gnu	Big-endian and little-endian.
	s390-*-linux-gnu
	s390x-*-linux-gnu
	sh[34]-*-linux-gnu
	sparc*-*-linux-gnu
	sparc64*-*-linux-gnu
	tilegx-*-linux-gnu
	tilepro-*-linux-gnu

If you are interested in doing a port, please contact the glibc
maintainers; see http://www.gnu.org/software/libc/ for more
information.

See the file INSTALL to find out how to configure, build, and install
the GNU C Library.  You might also consider reading the WWW pages for
the C library at http://www.gnu.org/software/libc/.

The GNU C Library is (almost) completely documented by the Texinfo manual
found in the `manual/' subdirectory.  The manual is still being updated
and contains some known errors and omissions; we regret that we do not
have the resources to work on the manual as much as we would like.  For
corrections to the manual, please file a bug in the `manual' component,
following the bug-reporting instructions below.  Please be sure to check
the manual in the current development sources to see if your problem has
already been corrected.

Please see http://www.gnu.org/software/libc/bugs.html for bug reporting
information.  We are now using the Bugzilla system to track all bug reports.
This web page gives detailed information on how to report bugs properly.

The GNU C Library is free software.  See the file COPYING.LIB for copying
conditions, and LICENSES for notices about a few contributions that require
these additional notices to be distributed.  License copyright years may be
listed using range notation, e.g., 1996-2015, indicating that every year in
the range, inclusive, is a copyrightable year that would otherwise be listed
individually.