Blender  V2.93
Macros
PIL_time_utildefines.h File Reference

Utility defines for timing/benchmarks. More...

#include "BLI_utildefines.h"
#include "PIL_time.h"

Go to the source code of this file.

Macros

#define TIMEIT_START(var)
 
#define TIMEIT_VALUE(var)   (float)(PIL_check_seconds_timer() - _timeit_##var)
 
#define TIMEIT_VALUE_PRINT(var)
 
#define TIMEIT_END(var)
 
#define TIMEIT_START_AVERAGED(var)
 
#define TIMEIT_AVERAGED_VALUE(var)   (_num##var ? (_sum_##var / _num_##var) : 0.0f)
 
#define TIMEIT_END_AVERAGED(var)
 
#define TIMEIT_BENCH(expr, id)
 
#define TIMEIT_BLOCK_INIT(id)   double _timeit_var_##id = 0
 
#define TIMEIT_BLOCK_START(id)
 
#define TIMEIT_BLOCK_END(id)
 
#define TIMEIT_BLOCK_STATS(id)
 

Detailed Description

Utility defines for timing/benchmarks.

Definition in file PIL_time_utildefines.h.

Macro Definition Documentation

◆ TIMEIT_AVERAGED_VALUE

#define TIMEIT_AVERAGED_VALUE (   var)    (_num##var ? (_sum_##var / _num_##var) : 0.0f)

Definition at line 78 of file PIL_time_utildefines.h.

◆ TIMEIT_BENCH

#define TIMEIT_BENCH (   expr,
  id 
)
Value:
{ \
TIMEIT_START(id); \
(expr); \
TIMEIT_END(id); \
} \
(void)0

Given some function/expression: TIMEIT_BENCH(some_function(), some_unique_description);

Definition at line 101 of file PIL_time_utildefines.h.

◆ TIMEIT_BLOCK_END

#define TIMEIT_BLOCK_END (   id)
Value:
} \
_timeit_var_##id += (PIL_check_seconds_timer() - _timeit_block_start_##id); \
} \
(void)0
double PIL_check_seconds_timer(void)
Definition: time.c:80

Definition at line 117 of file PIL_time_utildefines.h.

◆ TIMEIT_BLOCK_INIT

#define TIMEIT_BLOCK_INIT (   id)    double _timeit_var_##id = 0

Definition at line 109 of file PIL_time_utildefines.h.

◆ TIMEIT_BLOCK_START

#define TIMEIT_BLOCK_START (   id)
Value:
{ \
double _timeit_block_start_##id = PIL_check_seconds_timer(); \
{ \
(void)0

Definition at line 111 of file PIL_time_utildefines.h.

◆ TIMEIT_BLOCK_STATS

#define TIMEIT_BLOCK_STATS (   id)
Value:
{ \
printf("%s time (in seconds): %f\n", #id, _timeit_var_##id); \
fflush(stdout); \
} \
(void)0

Definition at line 123 of file PIL_time_utildefines.h.

◆ TIMEIT_END

#define TIMEIT_END (   var)
Value:
} \
printf("time end (" #var \
"): %.6f" \
" " AT "\n", \
TIMEIT_VALUE(var)); \
fflush(stdout); \
} \
(void)0
#define AT
#define TIMEIT_VALUE(var)

Definition at line 53 of file PIL_time_utildefines.h.

◆ TIMEIT_END_AVERAGED

#define TIMEIT_END_AVERAGED (   var)
Value:
} \
const float _delta_##var = TIMEIT_VALUE(var); \
_sum_##var += _delta_##var; \
_num_##var++; \
printf("time end (" #var \
"): %.6f" \
" " AT "\n", \
_delta_##var); \
printf("time averaged (" #var "): %.6f (total: %.6f, in %d runs)\n", \
(_sum_##var / _num_##var), \
_sum_##var, \
(int)_num_##var); \
fflush(stdout); \
} \
(void)0

Definition at line 80 of file PIL_time_utildefines.h.

◆ TIMEIT_START

#define TIMEIT_START (   var)
Value:
{ \
double _timeit_##var = PIL_check_seconds_timer(); \
printf("time start (" #var "): " AT "\n"); \
fflush(stdout); \
{ \
(void)0

Definition at line 30 of file PIL_time_utildefines.h.

◆ TIMEIT_START_AVERAGED

#define TIMEIT_START_AVERAGED (   var)
Value:
{ \
static float _sum_##var = 0.0f; \
static float _num_##var = 0.0f; \
double _timeit_##var = PIL_check_seconds_timer(); \
printf("time start (" #var "): " AT "\n"); \
fflush(stdout); \
{ \
(void)0

_AVERAGED variants do same thing as their basic counterpart, but additionally add elapsed time to an averaged static value, useful to get sensible timing of code running fast and often.

Definition at line 68 of file PIL_time_utildefines.h.

◆ TIMEIT_VALUE

#define TIMEIT_VALUE (   var)    (float)(PIL_check_seconds_timer() - _timeit_##var)
Returns
the time since TIMEIT_START was called.

Definition at line 41 of file PIL_time_utildefines.h.

◆ TIMEIT_VALUE_PRINT

#define TIMEIT_VALUE_PRINT (   var)
Value:
{ \
printf("time update (" #var \
"): %.6f" \
" " AT "\n", \
TIMEIT_VALUE(var)); \
fflush(stdout); \
} \
(void)0

Definition at line 43 of file PIL_time_utildefines.h.