Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJacques Lucke <jacques@blender.org>2020-04-22 13:53:47 +0300
committerJacques Lucke <jacques@blender.org>2020-04-22 13:53:47 +0300
commitc7991bcefcaa2924597bd8fe55ce63905fe0f23e (patch)
tree2b6a96d57c2c216fbf19f9610ff4108de16d42f0 /source/blender/blenlib/intern/timeit.cc
parent21f811cb6d3a4fbf8767b3fb0a2c272437c371ed (diff)
BLI: add ScopedTimer
This adds a simple timer that can be used for performance measurements in C++. More sophisticated timers are possible (e.g. one that takes averages, logs the results, ...). However, I found that this simple timer is good enough for 99% of my use cases. To use it just write `SCOPED_TIMER("my timer name");` or more commonly `SCOPED_TIMER(__func__);` into some scope. Reviewers: sergey Differential Revision: https://developer.blender.org/D7491
Diffstat (limited to 'source/blender/blenlib/intern/timeit.cc')
-rw-r--r--source/blender/blenlib/intern/timeit.cc36
1 files changed, 36 insertions, 0 deletions
diff --git a/source/blender/blenlib/intern/timeit.cc b/source/blender/blenlib/intern/timeit.cc
new file mode 100644
index 00000000000..bab8fd81746
--- /dev/null
+++ b/source/blender/blenlib/intern/timeit.cc
@@ -0,0 +1,36 @@
+/*
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+#include "BLI_timeit.hh"
+
+namespace BLI {
+namespace Timeit {
+
+void print_duration(Nanoseconds duration)
+{
+ if (duration < std::chrono::microseconds(100)) {
+ std::cout << duration.count() << " ns";
+ }
+ else if (duration < std::chrono::seconds(5)) {
+ std::cout << duration.count() / 1.0e6 << " ms";
+ }
+ else {
+ std::cout << duration.count() / 1.0e9 << " s";
+ }
+}
+
+} // namespace Timeit
+} // namespace BLI