[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