[Bf-blender-cvs] [cb6164000e8] soc-2020-info-editor: Simplify clog time function family
Mateusz GrzeliÅski
noreply at git.blender.org
Tue Aug 4 14:14:11 CEST 2020
Commit: cb6164000e80f11960cd2eef3b890e8bd2355520
Author: Mateusz Grzeliński
Date: Tue Aug 4 14:04:52 2020 +0200
Branches: soc-2020-info-editor
https://developer.blender.org/rBcb6164000e80f11960cd2eef3b890e8bd2355520
Simplify clog time function family
macros are no longer dependent on DEBUG
===================================================================
M source/blender/blenkernel/intern/lib_id.c
M source/blender/blenlib/PIL_time_utildefines.h
M source/blender/modifiers/intern/MOD_decimate.c
===================================================================
diff --git a/source/blender/blenkernel/intern/lib_id.c b/source/blender/blenkernel/intern/lib_id.c
index 9c1d49e31c9..a90d5b2bbf3 100644
--- a/source/blender/blenkernel/intern/lib_id.c
+++ b/source/blender/blenkernel/intern/lib_id.c
@@ -77,10 +77,10 @@
#include "atomic_ops.h"
-#define CLOG_DO_TIMEIT
-#include "PIL_time_utildefines.h"
+//#define CLOG_DO_TIMEIT
#ifdef CLOG_DO_TIMEIT
+# include "PIL_time_utildefines.h"
# define CLOG_TIMEIT(log_ref, log_level, ...) CLOG_VERBOSE(log_ref, log_level, __VA_ARGS__)
#else
# define CLOG_TIMEIT(log_ref, log_level, ...) \
@@ -1842,12 +1842,16 @@ void BKE_library_make_local(Main *bmain,
GSet *done_ids = BLI_gset_ptr_new(__func__);
+#ifdef CLOG_DO_TIMEIT
CLOG_TIMEIT_START(&LOG, 0, make_local);
+#endif
BKE_main_relations_create(bmain, 0);
+#ifdef CLOG_DO_TIMEIT
CLOG_TIMEIT(&LOG, 0, "Pre-compute current ID relations: Done.");
CLOG_TIMEIT_VALUE_PRINT(&LOG, 0, make_local);
+#endif
/* Step 1: Detect data-blocks to make local. */
for (int a = set_listbasepointers(bmain, lbarray); a--;) {
@@ -1902,8 +1906,10 @@ void BKE_library_make_local(Main *bmain,
}
}
+#ifdef CLOG_DO_TIMEIT
CLOG_TIMEIT(&LOG, 0, "Step 1: Detect data-blocks to make local: Done.");
CLOG_TIMEIT_VALUE_PRINT(&LOG, 0, make_local);
+#endif
/* Step 2: Check which data-blocks we can directly make local
* (because they are only used by already, or future, local data),
@@ -1919,8 +1925,10 @@ void BKE_library_make_local(Main *bmain,
/* Next step will most likely add new IDs, better to get rid of this mapping now. */
BKE_main_relations_free(bmain);
+#ifdef CLOG_DO_TIMEIT
CLOG_TIMEIT(&LOG, 0, "Step 2: Check which data-blocks we can directly make local: Done.");
CLOG_TIMEIT_VALUE_PRINT(&LOG, 0, make_local);
+#endif
/* Step 3: Make IDs local, either directly (quick and simple), or using generic process,
* which involves more complex checks and might instead
@@ -1971,8 +1979,10 @@ void BKE_library_make_local(Main *bmain,
}
}
+#ifdef CLOG_DO_TIMEIT
CLOG_TIMEIT(&LOG, 0, "Step 3: Make IDs local: Done.");
CLOG_TIMEIT_VALUE_PRINT(&LOG, 0, make_local);
+#endif
/* At this point, we are done with directly made local IDs.
* Now we have to handle duplicated ones, since their
@@ -2006,8 +2016,10 @@ void BKE_library_make_local(Main *bmain,
}
}
+#ifdef CLOG_DO_TIMEIT
CLOG_TIMEIT(&LOG, 0, "Step 4: Remap local usages of old (linked) ID to new (local) ID: Done.");
CLOG_TIMEIT_VALUE_PRINT(&LOG, 0, make_local);
+#endif
/* Step 5: proxy 'remapping' hack. */
for (LinkNode *it = copied_ids; it; it = it->next) {
@@ -2060,8 +2072,10 @@ void BKE_library_make_local(Main *bmain,
}
}
+#ifdef CLOG_DO_TIMEIT
CLOG_TIMEIT(&LOG, 0, "Step 5: Proxy 'remapping' hack: Done.");
CLOG_TIMEIT_VALUE_PRINT(&LOG, 0, make_local);
+#endif
/* This is probably more of a hack than something we should do here, but...
* Issue is, the whole copying + remapping done in complex cases above may leave pose-channels
@@ -2077,14 +2091,18 @@ void BKE_library_make_local(Main *bmain,
}
}
+#ifdef CLOG_DO_TIMEIT
CLOG_TIMEIT(&LOG, 0, "Hack: Forcefully rebuild armature object poses: Done.");
CLOG_TIMEIT_VALUE_PRINT(&LOG, 0, make_local);
+#endif
BKE_main_id_clear_newpoins(bmain);
BLI_memarena_free(linklist_mem);
+#ifdef CLOG_DO_TIMEIT
CLOG_TIMEIT(&LOG, 0, "Cleanup and finish: Done.");
CLOG_TIMEIT_END(&LOG, 0, make_local);
+#endif
}
/**
diff --git a/source/blender/blenlib/PIL_time_utildefines.h b/source/blender/blenlib/PIL_time_utildefines.h
index 85ad0d00ecb..8d640cc7425 100644
--- a/source/blender/blenlib/PIL_time_utildefines.h
+++ b/source/blender/blenlib/PIL_time_utildefines.h
@@ -129,147 +129,93 @@
(void)0
/** CLOG profiling function family */
-#ifdef CLOG_DO_TIMEIT
-
-# define CLOG_TIMEIT_START(log_ref, level, var) \
+#define CLOG_TIMEIT_START(log_ref, level, var) \
+ { \
+ double _clog_debug_timeit_##var = PIL_check_seconds_timer(); \
+ CLOG_DEBUG(log_ref, level, "time start (" #var ")"); \
{ \
- double _clog_debug_timeit_##var = PIL_check_seconds_timer(); \
- CLOG_DEBUG(log_ref, level, "time start (" #var ")"); \
- { \
- (void)0
+ (void)0
/**
* \return the time since TIMEIT_START was called.
*/
-# define CLOG_TIMEIT_VALUE(var) \
- (float)(PIL_check_seconds_timer() - _clog_debug_timeit_##var)
+#define CLOG_TIMEIT_VALUE(var) (float)(PIL_check_seconds_timer() - _clog_debug_timeit_##var)
-# define CLOG_TIMEIT_VALUE_PRINT(log_ref, level, var) \
- { \
- CLOG_DEBUG(log_ref, level, "time update (" #var "): %.6f", CLOG_TIMEIT_VALUE(var)); \
- } \
- (void)0
+#define CLOG_TIMEIT_VALUE_PRINT(log_ref, level, var) \
+ { \
+ CLOG_DEBUG(log_ref, level, "time update (" #var "): %.6f", CLOG_TIMEIT_VALUE(var)); \
+ } \
+ (void)0
-# define CLOG_TIMEIT_END(log_ref, level, var) \
- } \
- CLOG_DEBUG(log_ref, level, "time end (" #var "): %.6f", CLOG_TIMEIT_VALUE(var)); \
- } \
- (void)0
+#define CLOG_TIMEIT_END(log_ref, level, var) \
+ } \
+ CLOG_DEBUG(log_ref, level, "time end (" #var "): %.6f", CLOG_TIMEIT_VALUE(var)); \
+ } \
+ (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.
*/
-# define CLOG_TIMEIT_START_AVERAGED(log_ref, level, var) \
+#define CLOG_TIMEIT_START_AVERAGED(log_ref, level, var) \
+ { \
+ static float _clog_debug_sum_##var = 0.0f; \
+ static float _clog_debug_num_##var = 0.0f; \
+ double _clog_debug_timeit_##var = PIL_check_seconds_timer(); \
+ CLOG_DEBUG(log_ref, level, "time start (" #var ")"); \
{ \
- static float _clog_debug_sum_##var = 0.0f; \
- static float _clog_debug_num_##var = 0.0f; \
- double _clog_debug_timeit_##var = PIL_check_seconds_timer(); \
- CLOG_DEBUG(log_ref, level, "time start (" #var ")"); \
- { \
- (void)0
+ (void)0
-# define CLOG_TIMEIT_AVERAGED_VALUE(var) \
- (_clog_debug_num##var ? (_clog_debug_sum_##var / _clog_debug_num_##var) : 0.0f)
+#define CLOG_TIMEIT_AVERAGED_VALUE(var) \
+ (_clog_debug_num##var ? (_clog_debug_sum_##var / _clog_debug_num_##var) : 0.0f)
-# define CLOG_TIMEIT_END_AVERAGED(log_ref, level, var) \
- } \
- const float _clog_debug_delta_##var = CLOG_TIMEIT_VALUE(var); \
- _clog_debug_sum_##var += _clog_debug_delta_##var; \
- _clog_debug_num_##var++; \
- CLOG_DEBUG(log_ref, level, "time end (" #var "): %.6f", _clog_debug_delta_##var); \
- CLOG_DEBUG(log_ref, \
- level, \
- "time averaged (" #var "): %.6f (total: %.6f, in %d runs)", \
- (_clog_debug_sum_##var / _clog_debug_num_##var), \
- _clog_debug_sum_##var, \
- (int)_clog_debug_num_##var); \
- } \
- (void)0
+#define CLOG_TIMEIT_END_AVERAGED(log_ref, level, var) \
+ } \
+ const float _clog_debug_delta_##var = CLOG_TIMEIT_VALUE(var); \
+ _clog_debug_sum_##var += _clog_debug_delta_##var; \
+ _clog_debug_num_##var++; \
+ CLOG_DEBUG(log_ref, level, "time end (" #var "): %.6f", _clog_debug_delta_##var); \
+ CLOG_DEBUG(log_ref, \
+ level, \
+ "time averaged (" #var "): %.6f (total: %.6f, in %d runs)", \
+ (_clog_debug_sum_##var / _clog_debug_num_##var), \
+ _clog_debug_sum_##var, \
+ (int)_clog_debug_num_##var); \
+ } \
+ (void)0
/**
* Given some function/expression:
* TIMEIT_BENCH(some_function(), some_unique_description);
*/
-# define CLOG_TIMEIT_BENCH(log_ref, level, expr, id) \
- { \
- CLOG_TIMEIT_START(log_ref, level, id); \
- (expr); \
- CLOG_TIMEIT_END(log_ref, level, id); \
- } \
- (void)0
-
-# define CLOG_TIMEIT_BLOCK_INIT(log_ref, id) double _clog_debug_timeit_var_##id = 0
-
-# define CLOG_TIMEIT_BLOCK_START(id) \
- { \
- double _clog_debug_timeit_block_start_##id = PIL_check_seconds_timer(); \
- { \
- (void)0
-
-# define CLOG_TIMEIT_BLOCK_END(id) \
- } \
- _clog_debug_timeit_var_##id += (PIL_check_seconds_timer() - \
- _clog_debug_timeit_block_start_##id); \
- } \
- (void)0
-
-# define CLOG_TIMEIT_BLOCK_STATS(log_ref, level, id) \
- { \
- CLOG_DEBUG(log_ref, level, "%s time (in seconds): %f", #id, _clog_debug_timeit_var_##id); \
- } \
- (void)0
-#else
-
-# define CLOG_TIMEIT_START(log_ref, level, var) \
- { \
- { \
- (void)0
-
-# define CLOG_TIMEIT_VALUE(var) \
- do { \
- } while (false)
-
-# define CLOG_TIMEIT_VALUE_PRINT(log_ref, level, var) {}(void)0
-
-# define CLOG_TIMEIT_END(log_ref, level, var) \
- } \
- } \
- (void)0
-
-# define CLOG_TIMEIT_START_AVERAGED(log_ref, level, var) \
- { \
- { \
- (void)0
-
-# define CLOG_TIMEIT_AVERAGED_VALUE(var) \
- do { \
- } while (false)
-
-# define CLOG_TIMEIT_END_AVERAGED(log_ref, level, var) \
- } \
- } \
- (void)0
-
-# define CLOG_TIMEIT_BENCH(log_ref, level, expr, id) {}(void)0
+#define CLOG_TIMEIT_BENCH(log_ref, level, expr, id) \
+ { \
+ CLOG_TIMEIT_START(log_ref, level, id); \
+ (expr); \
+ CLOG_TIMEIT_END(log_ref, level, id); \
+ } \
+ (void)0
-# define CLOG_TIMEIT_BLOCK_INIT(log_ref, id) \
- do { \
- } while (false)
+#define CLOG_TIMEIT_BLOCK_INIT(log_ref, id) double _clog_debug_timeit_var_##id = 0
-# define CLOG_TIMEIT_BLOCK_START(id) \
+#define CLOG_TIMEIT_BLOCK_START(id) \
+ { \
+ double _clog_debug_timeit_block_start_##id = PIL_check_seconds_timer(); \
{ \
- { \
- (void)0
-
-# define CLOG_TIMEIT_BLOCK_END(id) \
- } \
- } \
- (void)0
+ (void)0
-# define CLOG_TIMEIT_BLOCK_STATS(log_ref, level, id) {}(void)0
+#define CLOG_TIMEIT_BLOCK_END(id) \
+ } \
+ _clog_debug_timeit_var_##id += (PIL_check_seconds_timer() - \
+ _clog_debug_timeit_block_start_##id); \
+ } \
+ (void)0
-#endif // DEBUG
+#define CLOG_TIMEIT_BLOCK_STATS(log_ref, level, id) \
+ { \
+ CLOG_DEBUG(log_ref, level, "%s
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list