summaryrefslogtreecommitdiff
path: root/perf/cairo-perf-micro.c
diff options
context:
space:
mode:
authorAndrea Canciani <ranma42@gmail.com>2011-08-03 09:49:08 +0200
committerAndrea Canciani <ranma42@gmail.com>2011-08-03 12:31:41 +0200
commit374b26ff03b9f36a7be974e65e42938a3c11b04c (patch)
tree3ce12cfe8a4b7b6e49b2bead595df27e14323e07 /perf/cairo-perf-micro.c
parent7b5b29cc0ffc44066589d371d872e355ce56343b (diff)
downloadcairo-374b26ff03b9f36a7be974e65e42938a3c11b04c.tar.gz
perf: Add hash table benchmark
A benchmark to test the speed of hash tables when inserting and removing a huge number of elements. Although originally hash tables were assumed not to get many deletions, in practice they are now being used as caches in multiple places. This means that they often have a fixed number of live elements and an element is evicted whenever a new element is inserted (this happens explicitly for cairo_cache_t objects, but also, for example, in scaled_font_map + holdovers). This access pattern is very inefficient with the current implementation.
Diffstat (limited to 'perf/cairo-perf-micro.c')
-rw-r--r--perf/cairo-perf-micro.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/perf/cairo-perf-micro.c b/perf/cairo-perf-micro.c
index ee5269a97..ca447defb 100644
--- a/perf/cairo-perf-micro.c
+++ b/perf/cairo-perf-micro.c
@@ -548,6 +548,7 @@ const cairo_perf_case_t perf_cases[] = {
{ hatching, 64, 512},
{ tessellate, 100, 100},
{ subimage_copy, 16, 512},
+ { hash_table, 16, 16},
{ pattern_create_radial, 16, 16},
{ zrusin, 415, 415},
{ world_map, 800, 800},