summaryrefslogtreecommitdiff
path: root/src/benchmarks
diff options
context:
space:
mode:
authorCedric Bail <cedric.bail@samsung.com>2013-09-26 15:04:21 +0900
committerCedric Bail <cedric.bail@samsung.com>2013-09-26 15:51:25 +0900
commit46ca166599413e17fc235da72cbadedd3b747a83 (patch)
tree3e36585095ba32f1ff1b702e63151ca9764ae60d /src/benchmarks
parent295babadb1675d1160b18c639dd6dcbe20b02cfb (diff)
downloadefl-46ca166599413e17fc235da72cbadedd3b747a83.tar.gz
eina: improve benchmark logic to be able to choose which one to run.
Note: Eina_Hash benchmark is not really matching all our usecase. We need a better tests that would expand the bench with a wider range of key size. Basically giving a 3d dimension to our gnuplot. Don't know if it is doable.
Diffstat (limited to 'src/benchmarks')
-rw-r--r--src/benchmarks/eina/eina_bench.c60
1 files changed, 41 insertions, 19 deletions
diff --git a/src/benchmarks/eina/eina_bench.c b/src/benchmarks/eina/eina_bench.c
index 5bd35f819b..a226fd9892 100644
--- a/src/benchmarks/eina/eina_bench.c
+++ b/src/benchmarks/eina/eina_bench.c
@@ -32,18 +32,19 @@ struct _Eina_Benchmark_Case
{
const char *bench_case;
void (*build)(Eina_Benchmark *bench);
+ Eina_Bool run_by_default;
};
static const Eina_Benchmark_Case etc[] = {
- { "Hash", eina_bench_hash },
- /* { "Array vs List vs Inlist", eina_bench_array }, */
- /* { "Stringshare", eina_bench_stringshare }, */
- /* { "Convert", eina_bench_convert }, */
- /* { "Sort", eina_bench_sort }, */
- /* { "Mempool", eina_bench_mempool }, */
- /* { "Rectangle_Pool", eina_bench_rectangle_pool }, */
- // { "Render Loop", eina_bench_quadtree },
- { NULL, NULL }
+ { "Hash", eina_bench_hash, EINA_TRUE },
+ { "Array vs List vs Inlist", eina_bench_array, EINA_TRUE },
+ { "Stringshare", eina_bench_stringshare, EINA_TRUE },
+ { "Convert", eina_bench_convert, EINA_TRUE },
+ { "Sort", eina_bench_sort, EINA_TRUE },
+ { "Mempool", eina_bench_mempool, EINA_TRUE },
+ { "Rectangle_Pool", eina_bench_rectangle_pool, EINA_TRUE },
+ { "Render Loop", eina_bench_quadtree, EINA_FALSE },
+ { NULL, NULL, EINA_FALSE }
};
/* FIXME this is a copy from eina_test_mempool
@@ -75,24 +76,45 @@ main(int argc, char **argv)
Eina_Benchmark *test;
unsigned int i;
- if (argc != 2)
- return -1;
-
_mempool_init();
eina_init();
- for (i = 0; etc[i].bench_case; ++i)
+ switch (argc)
{
- test = eina_benchmark_new(etc[i].bench_case, argv[1]);
- if (!test)
- continue;
+ case 1:
+ for (i = 0; etc[i].bench_case; ++i)
+ if (etc[i].run_by_default)
+ {
+ test = eina_benchmark_new(etc[i].bench_case, "default");
+ if (!test) continue;
+
+ etc[i].build(test);
+
+ eina_benchmark_run(test);
+
+ eina_benchmark_free(test);
+ }
+ break;
+ case 2:
+ for (i = 0; etc[i].bench_case; ++i)
+ {
+ if (strcasecmp(etc[i].bench_case, argv[1]))
+ continue;
+
+ test = eina_benchmark_new(etc[i].bench_case, argv[1]);
+ if (!test)
+ continue;
+
+ etc[i].build(test);
- etc[i].build(test);
+ eina_benchmark_run(test);
- eina_benchmark_run(test);
+ eina_benchmark_free(test);
- eina_benchmark_free(test);
+ break;
+ }
+ break;
}
eina_bench_e17();