diff options
author | Cedric Bail <cedric.bail@samsung.com> | 2013-09-26 15:04:21 +0900 |
---|---|---|
committer | Cedric Bail <cedric.bail@samsung.com> | 2013-09-26 15:51:25 +0900 |
commit | 46ca166599413e17fc235da72cbadedd3b747a83 (patch) | |
tree | 3e36585095ba32f1ff1b702e63151ca9764ae60d /src/benchmarks | |
parent | 295babadb1675d1160b18c639dd6dcbe20b02cfb (diff) | |
download | efl-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.c | 60 |
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(); |