diff --git a/db/db_impl/db_impl.cc b/db/db_impl/db_impl.cc index 771d4d961..5d5b298e7 100644 --- a/db/db_impl/db_impl.cc +++ b/db/db_impl/db_impl.cc @@ -2297,6 +2297,7 @@ void DBImpl::MultiGet(const ReadOptions& read_options, const size_t num_keys, autovector key_context; autovector sorted_keys; + key_context.reserve(num_keys); sorted_keys.resize(num_keys); for (size_t i = 0; i < num_keys; ++i) { key_context.emplace_back(column_families[i], keys[i], &values[i], @@ -2451,6 +2452,7 @@ void DBImpl::MultiGet(const ReadOptions& read_options, } autovector key_context; autovector sorted_keys; + key_context.reserve(num_keys); sorted_keys.resize(num_keys); for (size_t i = 0; i < num_keys; ++i) { key_context.emplace_back(column_family, keys[i], &values[i], diff --git a/util/autovector.h b/util/autovector.h index 7e33e5ca8..5babecbcc 100644 --- a/util/autovector.h +++ b/util/autovector.h @@ -220,6 +220,12 @@ class autovector { } } + void reserve(size_t cap) { + if (cap > kSize) { + vect_.reserve(cap - kSize); + } + } + bool empty() const { return size() == 0; } const_reference operator[](size_type n) const {