Blender V4.3
BLI_time_utildefines.h File Reference

Utility defines for timing/benchmarks. More...

#include "BLI_time.h"
#include "BLI_utildefines.h"

Go to the source code of this file.

Macros

#define TIMEIT_START(var)
 
#define TIMEIT_VALUE(var)   (float)(BLI_time_now_seconds() - _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_VALUE(id)   (float)(_timeit_var_##id)
 
#define TIMEIT_BLOCK_STATS(id)
 

Detailed Description

Utility defines for timing/benchmarks.

Definition in file BLI_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 63 of file BLI_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 86 of file BLI_time_utildefines.h.

◆ TIMEIT_BLOCK_END

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

Definition at line 102 of file BLI_time_utildefines.h.

◆ TIMEIT_BLOCK_INIT

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

Definition at line 94 of file BLI_time_utildefines.h.

◆ TIMEIT_BLOCK_START

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

Definition at line 96 of file BLI_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 110 of file BLI_time_utildefines.h.

◆ TIMEIT_BLOCK_VALUE

#define TIMEIT_BLOCK_VALUE ( id)    (float)(_timeit_var_##id)

Definition at line 108 of file BLI_time_utildefines.h.

◆ TIMEIT_END

◆ 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 65 of file BLI_time_utildefines.h.

Referenced by BKE_lib_override_library_main_operations_create(), BKE_lib_override_library_operations_store_start(), blender::ed::sculpt_paint::paint_stroke_curve_end(), RNA_struct_override_apply(), and RNA_struct_override_store().

◆ TIMEIT_START

◆ TIMEIT_START_AVERAGED

#define TIMEIT_START_AVERAGED ( var)
Value:
{ \
static float _sum_##var = 0.0f; \
static float _num_##var = 0.0f; \
double _timeit_##var = BLI_time_now_seconds(); \
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 53 of file BLI_time_utildefines.h.

Referenced by BKE_lib_override_library_main_operations_create(), BKE_lib_override_library_operations_store_start(), blender::ed::sculpt_paint::paint_stroke_curve_end(), RNA_struct_override_apply(), and RNA_struct_override_store().

◆ TIMEIT_VALUE

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

Definition at line 26 of file BLI_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 28 of file BLI_time_utildefines.h.

Referenced by BKE_library_make_local().