// Copyright (c) 2013, Facebook, Inc. All rights reserved. // This source code is licensed under the BSD-style license found in the // LICENSE file in the root directory of this source tree. An additional grant // of patent rights can be found in the PATENTS file in the same directory. // #pragma once #include "rocksdb/perf_context.h" #include "util/stop_watch.h" namespace rocksdb { extern enum PerfLevel perf_level; inline void StartPerfTimer(StopWatchNano* timer) { if (perf_level >= PerfLevel::kEnableTime) { timer->Start(); } } inline void BumpPerfCount(uint64_t* count, uint64_t delta = 1) { if (perf_level >= PerfLevel::kEnableCount) { *count += delta; } } inline void BumpPerfTime(uint64_t* time, StopWatchNano* timer, bool reset = true) { if (perf_level >= PerfLevel::kEnableTime) { *time += timer->ElapsedNanos(reset); } } }