From 0980c4f110bae5a9d7813993a0a73721fa31db76 Mon Sep 17 00:00:00 2001 From: ArcueidType <981354012@qq.com> Date: Fri, 3 Jan 2025 17:01:56 +0800 Subject: [PATCH] update baseline benchmark --- benchmarks/db_bench.cc | 4 ++-- db/fields.cc | 2 ++ db/fields.h | 3 +++ 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/benchmarks/db_bench.cc b/benchmarks/db_bench.cc index e600e69..578d4c7 100644 --- a/benchmarks/db_bench.cc +++ b/benchmarks/db_bench.cc @@ -875,7 +875,7 @@ class Benchmark { int i = 0; int64_t bytes = 0; for (iter->SeekToFirst(); i < reads_ && iter->Valid(); iter->Next()) { - bytes += iter->key().size() + iter->value().size(); + bytes += iter->key().size() + iter->fields().size(); thread->stats.FinishedSingleOp(); ++i; } @@ -888,7 +888,7 @@ class Benchmark { int i = 0; int64_t bytes = 0; for (iter->SeekToLast(); i < reads_ && iter->Valid(); iter->Prev()) { - bytes += iter->key().size() + iter->value().size(); + bytes += iter->key().size() + iter->fields().size(); thread->stats.FinishedSingleOp(); ++i; } diff --git a/db/fields.cc b/db/fields.cc index dd37277..ca073f1 100644 --- a/db/fields.cc +++ b/db/fields.cc @@ -7,6 +7,7 @@ namespace leveldb { assert(!field_array.empty()); for (const auto& field : field_array) { this->_fields[field.first] = field.second; + this->size_ += field.first.size() + field.second.size(); } } @@ -25,6 +26,7 @@ namespace leveldb { Slice value = Slice(field.data() + name_size, field.size() - name_size); this->_fields[name.ToString()] = value.ToString(); + this->size_ += name.ToString().size() + value.ToString().size(); fields = Slice(fields.data() + field_size, fields.size() - field_size); } diff --git a/db/fields.h b/db/fields.h index 411a29b..1c7ffbf 100644 --- a/db/fields.h +++ b/db/fields.h @@ -33,8 +33,11 @@ namespace leveldb { // 将Fields编码为存入LevelDB的Value std::string Serialize() const; + uint64_t size() const { return size_; } + private: std::map _fields; + uint64_t size_ = 0; }; } // namespace leveldb #endif //STORAGE_LEVELDB_FIELDS_H_