#ifndef DISABLE_STOPWATCH #include #include #include #include #include namespace mbgl { namespace util { stopwatch::stopwatch(Event event_) : event(event_), start(Clock::now()) {} stopwatch::stopwatch(EventSeverity severity_, Event event_) : severity(severity_), event(event_), start(Clock::now()) {} stopwatch::stopwatch(std::string name_, Event event_) : name(std::move(name_)), event(event_), start(Clock::now()) {} stopwatch::stopwatch(std::string name_, EventSeverity severity_, Event event_) : name(std::move(name_)), severity(severity_), event(event_), start(Clock::now()) {} void stopwatch::report(const std::string &name_) { Duration duration = Clock::now() - start; Log::Record(severity, event, "%s: %fms", name_.c_str(), std::chrono::duration(duration).count()); start += duration; } stopwatch::~stopwatch() { if (!name.empty()) { report(name); } } } // namespace util } // namespace mbgl #endif