glib/tests
Alexander Larsson b1f94af095 Add performance tests for GObject primitives
These are basic performance test for a couple of basic gobject
primitives:

* construction of simple objects. Simple is a bare gobject derived
  class with no properties, signals or interfaces.

* construction of complex objects. Complex is a gobject subclass
  with construct properties, normal properties, signals, and
  implements an interface.

* run-time type check of complex objects

* signal emissions

Lots of care is taken to try to make the results reproducible. Each
test is run for multible "rounds", where we try to make each round be
"not too short" in order to be significant wrt timer accuracy, but
also "not to long" to make the probability of some other random event
happening on the system (interrupts, other process scheduled, etc)
during the round less likely.
The current target round time is 4 msecs, which was picked without
rigour, but seems small wrt e.g. scheduler time.

For each test we then run the calculated round size for 60 seconds,
and then report the performance based on the minimal time of one
round. The model here is that any random stuff that happens during a
round can only slow it down, there is nothing that can make it go
faster, so the minimal time is the best estimate of how fast one round
goes.

The result is not ideal, even on a "idle" system the results vary
from round to round, but the variation seems to be less than 1%.
So, any performance difference reported by this test over 1% is
probably statistically significant.

Additionally the tests can be run with or without threads being
initialized. The script tests/gobject/run-performance.sh makes
it easy to produce a performance report for the current checkout.

https://bugzilla.gnome.org/show_bug.cgi?id=557100
2009-10-02 21:02:23 +02:00
..
bookmarks Do not set the timestamp value using time(), as it will be overwritten 2008-07-21 13:05:24 +00:00
collate Add Collation tests. 2005-10-05 17:37:46 +00:00
gobject Add performance tests for GObject primitives 2009-10-02 21:02:23 +02:00
markups Fix up tests forgotten in Michaels commit 2009-05-03 17:10:16 -04:00
refcount initialize automake variables EXTRA_DIST and TEST_PROGS for unconditional 2007-11-21 20:09:46 +00:00
.gitignore update 2009-01-05 14:56:55 +00:00
asyncqueue-test.c Bug 553447 $(Q#|(B g_assert_no_error() 2008-09-27 01:43:29 +00:00
atomic-test.c Make computation of "biggest_pointer" vaguely more portable. (#137498, 2004-03-19 16:13:37 +00:00
base64-test.c Fix a memory overrun 2007-11-24 16:24:30 +00:00
bit-test.c Fix tests on x86_64. 2007-01-05 03:31:54 +00:00
bookmarkfile-test.c Bug 553447 $(Q#|(B g_assert_no_error() 2008-09-27 01:43:29 +00:00
casefold.txt Update to Unicode 5.1 2008-05-27 16:20:27 +00:00
casemap.txt Update to Unicode 5.1 2008-05-27 16:20:27 +00:00
checksum-test.c Accept short data 2008-10-24 04:10:50 +00:00
child-test.c define PCRE_STATIC to reflect the inclusion of pcre as LIB, not 2007-03-17 09:49:09 +00:00
completion-test.c Make passing NULL for new_prefix work as documented. (#338845, Yevgen 2006-04-18 02:21:43 +00:00
convert-test.c Bug 553447 $(Q#|(B g_assert_no_error() 2008-09-27 01:43:29 +00:00
cxx-test.C Add gio/gio.h include to check for c++ problems. 2008-01-08 20:37:43 +00:00
date-test.c Add tests for g_date_get_iso8601_week_of_year(). 2005-03-28 05:22:56 +00:00
dirname-test.c Fix Win32 behaviour in some cases where a drive letter is present. For 2004-03-21 21:43:13 +00:00
env-test.c Remove critical log handler; we can't trigger g_return_if_fails() in our 2004-03-14 04:27:26 +00:00
errorcheck-mutex-test.c Fix warnings from sparse. (#487491, Kjartan Maraas) 2007-10-21 17:01:29 +00:00
file-test.c Bug 553447 $(Q#|(B g_assert_no_error() 2008-09-27 01:43:29 +00:00
gen-casefold-txt.pl Update Unicode data to 4.0. (#107974) 2003-07-31 02:27:56 +00:00
gen-casemap-txt.pl Unicode 4.0 special casing. (#114681) 2003-09-10 16:55:36 +00:00
gio-ls.c adapt to recent api changes variable declaration at the beginning of a 2007-12-21 10:11:35 +00:00
gio-test.c Not needed, just use -DPCRE_STATIC. 2007-11-07 09:49:25 +00:00
hash-test.c Add hash table iterators. (#500507, Jean-Yves Lefort) 2007-12-15 03:54:09 +00:00
iochannel-test-infile Modified Files: glib/ChangeLog glib/glib.def glib/glib/giochannel.c 2001-07-20 20:14:37 +00:00
iochannel-test.c Ignore the error if iconv doesn't support EUC-JP. 2008-07-14 19:31:33 +00:00
libmoduletestplugin_a.c Fix compiler warnings. 2005-12-05 13:37:55 +00:00
libmoduletestplugin_b.c Added #undef G_DISABLE_ASSERT and #undef G_LOG_DOMAIN throughout the 2002-07-04 15:19:30 +00:00
list-test.c Updated to test _sort, _sort_with_data, _insert_sorted and 2006-02-19 17:17:32 +00:00
mainloop-test.c Not needed, just use -DPCRE_STATIC. 2007-11-07 09:49:25 +00:00
Makefile.am Revert "Move gio tests from gio/tests/ to tests/gio/" 2009-07-05 22:49:24 -04:00
makefile.msc.in Updated msvc build files 2009-05-30 15:29:23 +02:00
mapping-test.c define PCRE_STATIC to reflect the inclusion of pcre as LIB, not 2007-03-17 09:49:09 +00:00
markup-collect.c Add some tests for invalid booleans 2007-11-27 02:29:31 +00:00
markup-escape-test.c Handle restricted characters by converting them to numeric character 2007-08-09 02:06:04 +00:00
markup-test.c Output that test-markup is expected to produce when run on the valid 2006-05-28 22:58:41 +00:00
memchunks.c extended to perform the benchmarking on the old memchunk code if 'O' is 2005-12-02 09:57:06 +00:00
module-test.c added convenience macros G_IMPLEMENT_INTERFACE() and G_DEFINE_TYPE() plus 2004-01-09 14:40:31 +00:00
node-test.c Include "config.h" instead of <config.h> Command used: find -name 2008-06-22 15:10:51 +00:00
onceinit.c prevent race covered by g_once_init_enter(), by checking for previous 2007-08-14 00:05:52 +00:00
patterntest.c Bug 535628 - test/patterntest.c still includes gpattern.h directly. 2008-05-30 09:05:08 +00:00
qsort-test.c Added #undef G_DISABLE_ASSERT and #undef G_LOG_DOMAIN throughout the 2002-07-04 15:19:30 +00:00
queue-test.c Updated to test _sort, _sort_with_data, _insert_sorted and 2006-02-19 17:17:32 +00:00
regex-test.c Misc warning fixes 2009-05-01 10:37:45 -04:00
relation-test.c Add missing const. (g_strsplit): Add g_return_val_if_fail for case of 2001-07-19 20:07:41 +00:00
run-bookmark-test.sh Add test suite for GBookmarkFile. 2006-03-27 18:28:07 +00:00
run-collate-tests.sh Silently skip tests if we can't set LC_COLLATE to en_US. (#336438) 2006-12-24 21:47:05 +00:00
run-markup-tests.sh Don't use diff -u (#380801, Marek Rouchal) 2006-12-17 18:01:15 +00:00
scannerapi.c added new scanner test from #501654, by Patrick Hulin with various 2007-12-06 08:32:03 +00:00
sequence-test.c Don't export the consistency check function 2007-03-17 04:25:40 +00:00
shell-test.c Plug leaks reported by valgrind. Same. Same Same. Same. Same. 2006-02-23 09:09:55 +00:00
slice-color.c define PCRE_STATIC to reflect the inclusion of pcre as LIB, not 2007-03-17 09:49:09 +00:00
slice-concurrent.c beautified output somewhat. fixed long sleeps by reducing sleep 2007-07-12 15:35:26 +00:00
slice-test.c define PCRE_STATIC to reflect the inclusion of pcre as LIB, not 2007-03-17 09:49:09 +00:00
slice-threadinit.c Fix distcheck 2009-03-01 16:46:45 +00:00
slist-test.c Updated to test _sort, _sort_with_data, _insert_sorted and 2006-02-19 17:17:32 +00:00
spawn-test-win32-gui.c Minor Cygwin fix. (#138405, Roger Leigh) 2004-03-31 02:13:52 +00:00
spawn-test.c Not needed, just use -DPCRE_STATIC. 2007-11-07 09:49:25 +00:00
testgdate.c Add tests for g_date_get_iso8601_week_of_year(). 2005-03-28 05:22:56 +00:00
testgdateparser.c Added #undef G_DISABLE_ASSERT and #undef G_LOG_DOMAIN throughout the 2002-07-04 15:19:30 +00:00
testglib.c g_time_val_from_iso8601: handle timezoneless dates 2009-09-01 09:40:03 -04:00
testingbase64.c add G_DISABLE_SINGLE_INCLUDES to CPPFLAGS globally. 2008-05-28 16:18:27 +00:00
thread-test.c Make the tests silent on success. 2005-07-14 05:20:14 +00:00
threadpool-test.c Include "config.h" instead of <config.h> Command used: find -name 2008-06-22 15:10:51 +00:00
timeloop-basic.c Some file list updates (#398069, Owen Taylor) 2007-01-19 15:50:30 +00:00
timeloop-closure.c glib/gdebug.h glib/gutils.c gobject/gtype.c gthread/gthread-posix.c 2004-11-01 18:47:12 +00:00
timeloop.c glib/gdebug.h glib/gutils.c gobject/gtype.c gthread/gthread-posix.c 2004-11-01 18:47:12 +00:00
tree-test.c Silence a warning 2006-04-05 05:03:33 +00:00
type-test.c Fix docs for G_MAXSIZE. (#148262, Christophe Fergeau) 2004-07-23 14:39:25 +00:00
unicode-caseconv.c If a character can't be converted, don't replace it with a NUL byte, but 2006-08-05 21:53:49 +00:00
unicode-collate.c Silently skip tests if we can't set LC_COLLATE to en_US. (#336438) 2006-12-24 21:47:05 +00:00
unicode-encoding.c Use UTF-16LE as target encoding on all little-endian systems. (#143380, 2006-01-24 15:25:11 +00:00
unicode-normalize.c Update to reflect Unicode PR #29 (#348694, Nikolai Weibull) 2006-07-31 04:50:05 +00:00
uri-test.c Include "config.h" instead of <config.h> Command used: find -name 2008-06-22 15:10:51 +00:00
utf8-pointer.c applied fix for bug #476840. 2007-09-14 13:28:07 +00:00
utf8-validate.c filter G_GNUC before PRIVATE so $ is still true. 2004-11-28 21:21:14 +00:00
utf8.txt Change instances of U+10ffff to U+10fffd, since that is the last valid 2003-07-31 16:48:54 +00:00