Blender  V3.3
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 62 of file PIL_time_utildefines.h.

◆ TIMEIT_BENCH

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

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

Definition at line 85 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:64

Definition at line 101 of file PIL_time_utildefines.h.

◆ TIMEIT_BLOCK_INIT

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

Definition at line 93 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 95 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 107 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 37 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 64 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 14 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 52 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 25 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 27 of file PIL_time_utildefines.h.