-Codec::Codec(
- CodecType type,
- Optional<int> level,
- StringPiece name,
- bool counters)
- : type_(type) {
- if (counters) {
- bytesBeforeCompression_ = {type,
- name,
- level,
- CompressionCounterKey::BYTES_BEFORE_COMPRESSION,
- CompressionCounterType::SUM};
- bytesAfterCompression_ = {type,
- name,
- level,
- CompressionCounterKey::BYTES_AFTER_COMPRESSION,
- CompressionCounterType::SUM};
- bytesBeforeDecompression_ = {
- type,
- name,
- level,
- CompressionCounterKey::BYTES_BEFORE_DECOMPRESSION,
- CompressionCounterType::SUM};
- bytesAfterDecompression_ = {
- type,
- name,
- level,
- CompressionCounterKey::BYTES_AFTER_DECOMPRESSION,
- CompressionCounterType::SUM};
- compressions_ = {type,
- name,
- level,
- CompressionCounterKey::COMPRESSIONS,
- CompressionCounterType::SUM};
- decompressions_ = {type,
- name,
- level,
- CompressionCounterKey::DECOMPRESSIONS,
- CompressionCounterType::SUM};
- compressionMilliseconds_ = {type,
- name,
- level,
- CompressionCounterKey::COMPRESSION_MILLISECONDS,
- CompressionCounterType::SUM};
- decompressionMilliseconds_ = {
- type,
- name,
- level,
- CompressionCounterKey::DECOMPRESSION_MILLISECONDS,
- CompressionCounterType::SUM};
- }
-}
-
-namespace {
-constexpr uint32_t kLoggingRate = 50;
-
-class Timer {
- public:
- explicit Timer(folly::detail::CompressionCounter& counter)
- : counter_(&counter) {}
-
- ~Timer() {
- *counter_ += timer_.elapsed().count();
- }
-
- private:
- folly::detail::CompressionCounter* counter_;
- stop_watch<std::chrono::milliseconds> timer_;
-};
-} // namespace