forked from enlightenment/efl
Add init/shutdown to benchmark and fix its users.
SVN revision: 36073
This commit is contained in:
parent
ac21afc37f
commit
ce16573cb3
|
@ -37,6 +37,9 @@ typedef struct _Eina_Benchmark Eina_Benchmark;
|
||||||
typedef void (*Eina_Benchmark_Specimens)(int request);
|
typedef void (*Eina_Benchmark_Specimens)(int request);
|
||||||
#define EINA_BENCHMARK(Function) ((Eina_Benchmark_Specimens)Function)
|
#define EINA_BENCHMARK(Function) ((Eina_Benchmark_Specimens)Function)
|
||||||
|
|
||||||
|
EAPI int eina_benchmark_init(void);
|
||||||
|
EAPI int eina_benchmark_shutdown(void);
|
||||||
|
|
||||||
EAPI Eina_Benchmark *eina_benchmark_new(const char *name, const char *run);
|
EAPI Eina_Benchmark *eina_benchmark_new(const char *name, const char *run);
|
||||||
EAPI void eina_benchmark_free(Eina_Benchmark *bench);
|
EAPI void eina_benchmark_free(Eina_Benchmark *bench);
|
||||||
|
|
||||||
|
|
|
@ -61,6 +61,8 @@ struct _Eina_Benchmark
|
||||||
Eina_Inlist *runs;
|
Eina_Inlist *runs;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static int _eina_benchmark_count = 0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @endcond
|
* @endcond
|
||||||
*/
|
*/
|
||||||
|
@ -89,13 +91,46 @@ struct _Eina_Benchmark
|
||||||
* @{
|
* @{
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
EAPI int
|
||||||
|
eina_benchmark_init(void)
|
||||||
|
{
|
||||||
|
_eina_benchmark_count++;
|
||||||
|
|
||||||
|
if (_eina_benchmark_count > 1) return _eina_benchmark_count;
|
||||||
|
|
||||||
|
eina_error_init();
|
||||||
|
eina_array_init();
|
||||||
|
eina_counter_init();
|
||||||
|
|
||||||
|
return _eina_benchmark_count;
|
||||||
|
}
|
||||||
|
|
||||||
|
EAPI int
|
||||||
|
eina_benchmark_shutdown(void)
|
||||||
|
{
|
||||||
|
_eina_benchmark_count--;
|
||||||
|
|
||||||
|
if (_eina_benchmark_count != 0) return _eina_benchmark_count;
|
||||||
|
|
||||||
|
eina_counter_shutdown();
|
||||||
|
eina_array_shutdown();
|
||||||
|
eina_error_shutdown();
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
EAPI Eina_Benchmark *
|
EAPI Eina_Benchmark *
|
||||||
eina_benchmark_new(const char *name, const char *run)
|
eina_benchmark_new(const char *name, const char *run)
|
||||||
{
|
{
|
||||||
Eina_Benchmark *new;
|
Eina_Benchmark *new;
|
||||||
|
|
||||||
|
eina_error_set(0);
|
||||||
new = calloc(1, sizeof (Eina_Benchmark));
|
new = calloc(1, sizeof (Eina_Benchmark));
|
||||||
if (!new) return NULL;
|
if (!new)
|
||||||
|
{
|
||||||
|
eina_error_set(EINA_ERROR_OUT_OF_MEMORY);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
new->name = name;
|
new->name = name;
|
||||||
new->run = run;
|
new->run = run;
|
||||||
|
@ -127,8 +162,13 @@ eina_benchmark_register(Eina_Benchmark *bench, const char *name, Eina_Benchmark_
|
||||||
|
|
||||||
if (!bench) return ;
|
if (!bench) return ;
|
||||||
|
|
||||||
|
eina_error_set(0);
|
||||||
run = calloc(1, sizeof (Eina_Run));
|
run = calloc(1, sizeof (Eina_Run));
|
||||||
if (!run) return ;
|
if (!run)
|
||||||
|
{
|
||||||
|
eina_error_set(EINA_ERROR_OUT_OF_MEMORY);
|
||||||
|
return ;
|
||||||
|
}
|
||||||
|
|
||||||
run->cb = bench_cb;
|
run->cb = bench_cb;
|
||||||
run->name = name;
|
run->name = name;
|
||||||
|
|
|
@ -25,6 +25,8 @@
|
||||||
#include "eina_stringshare.h"
|
#include "eina_stringshare.h"
|
||||||
#include "eina_list.h"
|
#include "eina_list.h"
|
||||||
#include "eina_array.h"
|
#include "eina_array.h"
|
||||||
|
#include "eina_counter.h"
|
||||||
|
#include "eina_benchmark.h"
|
||||||
|
|
||||||
/*============================================================================*
|
/*============================================================================*
|
||||||
* Global *
|
* Global *
|
||||||
|
@ -44,6 +46,8 @@ eina_init(void)
|
||||||
eina_stringshare_init();
|
eina_stringshare_init();
|
||||||
eina_list_init();
|
eina_list_init();
|
||||||
eina_array_init();
|
eina_array_init();
|
||||||
|
eina_counter_init();
|
||||||
|
eina_benchmark_init();
|
||||||
|
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
@ -53,6 +57,8 @@ eina_shutdown(void)
|
||||||
{
|
{
|
||||||
int r;
|
int r;
|
||||||
|
|
||||||
|
eina_benchmark_shutdown();
|
||||||
|
eina_counter_shutdown();
|
||||||
eina_array_shutdown();
|
eina_array_shutdown();
|
||||||
eina_list_shutdown();
|
eina_list_shutdown();
|
||||||
eina_stringshare_shutdown();
|
eina_stringshare_shutdown();
|
||||||
|
|
|
@ -46,6 +46,8 @@ main(int argc, char **argv)
|
||||||
|
|
||||||
if (argc != 2) return -1;
|
if (argc != 2) return -1;
|
||||||
|
|
||||||
|
eina_benchmark_init();
|
||||||
|
|
||||||
for (i = 0; etc[i].bench_case != NULL; ++i)
|
for (i = 0; etc[i].bench_case != NULL; ++i)
|
||||||
{
|
{
|
||||||
test = eina_benchmark_new(etc[i].bench_case, argv[1]);
|
test = eina_benchmark_new(etc[i].bench_case, argv[1]);
|
||||||
|
@ -71,5 +73,7 @@ main(int argc, char **argv)
|
||||||
|
|
||||||
eina_bench_e17();
|
eina_bench_e17();
|
||||||
|
|
||||||
|
eina_benchmark_shutdown();
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue