diff options
Diffstat (limited to 'src/common')
-rw-r--r-- | src/common/perf_timer.h | 15 | ||||
-rw-r--r-- | src/common/scoped_message_writer.h | 13 |
2 files changed, 20 insertions, 8 deletions
diff --git a/src/common/perf_timer.h b/src/common/perf_timer.h index 56662ff24..bc8e05800 100644 --- a/src/common/perf_timer.h +++ b/src/common/perf_timer.h @@ -46,9 +46,9 @@ extern __thread std::vector<PerformanceTimer*> *performance_timers; class PerformanceTimer { public: - PerformanceTimer(const std::string &s, el::Level l = el::Level::Debug): name(s), level(l), started(false) + PerformanceTimer(const std::string &s, uint64_t unit, el::Level l = el::Level::Debug): name(s), unit(unit), level(l), started(false) { - ticks = epee::misc_utils::get_tick_count(); + ticks = epee::misc_utils::get_ns_count(); if (!performance_timers) { MLOG(level, "PERF ----------"); @@ -69,9 +69,9 @@ public: ~PerformanceTimer() { performance_timers->pop_back(); - ticks = epee::misc_utils::get_tick_count() - ticks; + ticks = epee::misc_utils::get_ns_count() - ticks; char s[12]; - snprintf(s, sizeof(s), "%8llu ", (unsigned long long)ticks); + snprintf(s, sizeof(s), "%8llu ", (unsigned long long)ticks / (1000000000 / unit)); MLOG(level, "PERF " << s << std::string(performance_timers->size() * 2, ' ') << " " << name); if (performance_timers->empty()) { @@ -82,6 +82,7 @@ public: private: std::string name; + uint64_t unit; el::Level level; uint64_t ticks; bool started; @@ -89,7 +90,9 @@ private: void set_performance_timer_log_level(el::Level level); -#define PERF_TIMER(name) tools::PerformanceTimer pt_##name(#name, tools::performance_timer_log_level) -#define PERF_TIMER_L(name, l) tools::PerformanceTimer pt_##name(#name, l) +#define PERF_TIMER_UNIT(name, unit) tools::PerformanceTimer pt_##name(#name, unit, tools::performance_timer_log_level) +#define PERF_TIMER_UNIT_L(name, unit, l) tools::PerformanceTimer pt_##name(#name, unit, l) +#define PERF_TIMER(name) PERF_TIMER_UNIT(name, 1000) +#define PERF_TIMER_L(name, l) PERF_TIMER_UNIT_L(name, 1000, l) } diff --git a/src/common/scoped_message_writer.h b/src/common/scoped_message_writer.h index e31f8f0b2..8fc98d2b0 100644 --- a/src/common/scoped_message_writer.h +++ b/src/common/scoped_message_writer.h @@ -31,6 +31,14 @@ #include "misc_log_ex.h" #include <iostream> +#ifdef HAVE_READLINE + #include "readline_buffer.h" + #define PAUSE_READLINE() \ + rdln::suspend_readline pause_readline; +#else + #define PAUSE_READLINE() +#endif + namespace tools { @@ -99,6 +107,7 @@ public: } else { + PAUSE_READLINE(); set_console_color(m_color, m_bright); std::cout << m_oss.str(); epee::reset_console_color(); @@ -108,9 +117,9 @@ public: } }; -inline scoped_message_writer success_msg_writer() +inline scoped_message_writer success_msg_writer(bool color = true) { - return scoped_message_writer(epee::console_color_green, false, std::string(), el::Level::Info); + return scoped_message_writer(color ? epee::console_color_green : epee::console_color_default, false, std::string(), el::Level::Info); } inline scoped_message_writer msg_writer(epee::console_colors color = epee::console_color_default) |