diff --git a/internal/core/src/segcore/ChunkedSegmentSealedImpl.cpp b/internal/core/src/segcore/ChunkedSegmentSealedImpl.cpp index 0ae4eb70ad..0ab3f7ed54 100644 --- a/internal/core/src/segcore/ChunkedSegmentSealedImpl.cpp +++ b/internal/core/src/segcore/ChunkedSegmentSealedImpl.cpp @@ -285,6 +285,7 @@ ChunkedSegmentSealedImpl::load_column_group_data_internal( // warmup will be disabled only when all columns are not in load list bool merged_in_load_list = false; std::vector milvus_field_ids; + milvus_field_ids.reserve(field_id_list.size()); for (int i = 0; i < field_id_list.size(); ++i) { milvus_field_ids.push_back(FieldId(field_id_list.Get(i))); merged_in_load_list = merged_in_load_list || diff --git a/internal/core/src/segcore/TimestampIndex.cpp b/internal/core/src/segcore/TimestampIndex.cpp index a34752e8d1..1d713b6315 100644 --- a/internal/core/src/segcore/TimestampIndex.cpp +++ b/internal/core/src/segcore/TimestampIndex.cpp @@ -23,9 +23,11 @@ TimestampIndex::build_with(const Timestamp* timestamps, int64_t size) { auto num_slice = lengths_.size(); Assert(num_slice > 0); std::vector prefix_sums; + prefix_sums.reserve(num_slice + 1); int offset = 0; prefix_sums.push_back(offset); std::vector timestamp_barriers; + timestamp_barriers.reserve(num_slice + 1); Timestamp last_max_v = 0; for (int slice_id = 0; slice_id < num_slice; ++slice_id) { auto length = lengths_[slice_id]; diff --git a/internal/core/src/segcore/storagev2translator/GroupChunkTranslator.cpp b/internal/core/src/segcore/storagev2translator/GroupChunkTranslator.cpp index 35724e83e8..d0557e347b 100644 --- a/internal/core/src/segcore/storagev2translator/GroupChunkTranslator.cpp +++ b/internal/core/src/segcore/storagev2translator/GroupChunkTranslator.cpp @@ -89,6 +89,7 @@ GroupChunkTranslator::GroupChunkTranslator( .GetArrowFileSystem(); // Get row group metadata from files + row_group_meta_list_.reserve(insert_files_.size()); for (const auto& file : insert_files_) { auto reader = std::make_shared( fs, @@ -110,11 +111,16 @@ GroupChunkTranslator::GroupChunkTranslator( file_row_group_prefix_sum_.reserve(row_group_meta_list_.size() + 1); file_row_group_prefix_sum_.push_back( 0); // Base case: 0 row groups before first file + size_t total_row_groups = 0; for (const auto& file_metas : row_group_meta_list_) { + total_row_groups += file_metas.size(); file_row_group_prefix_sum_.push_back(file_row_group_prefix_sum_.back() + file_metas.size()); } + meta_.num_rows_until_chunk_.reserve(total_row_groups + 1); + meta_.chunk_memory_size_.reserve(total_row_groups); + meta_.num_rows_until_chunk_.push_back(0); for (const auto& row_group_meta : row_group_meta_list_) { for (int i = 0; i < row_group_meta.size(); ++i) { diff --git a/internal/core/thirdparty/tantivy/tantivy-wrapper.h b/internal/core/thirdparty/tantivy/tantivy-wrapper.h index d686ea4c7d..c3efab2c0d 100644 --- a/internal/core/thirdparty/tantivy/tantivy-wrapper.h +++ b/internal/core/thirdparty/tantivy/tantivy-wrapper.h @@ -355,6 +355,7 @@ struct TantivyIndexWrapper { int64_t offset_begin) { assert(!finished_); std::vector views; + views.reserve(len); for (uintptr_t i = 0; i < len; i++) { views.push_back(array[i].c_str()); } @@ -435,6 +436,7 @@ struct TantivyIndexWrapper { if constexpr (std::is_same_v) { std::vector views; + views.reserve(len); for (uintptr_t i = 0; i < len; i++) { views.push_back(array[i].c_str()); } @@ -621,6 +623,7 @@ struct TantivyIndexWrapper { if constexpr (std::is_same_v) { std::vector views; + views.reserve(len); for (uintptr_t i = 0; i < len; i++) { views.push_back(array[i].c_str()); } @@ -709,6 +712,7 @@ struct TantivyIndexWrapper { } else { // smaller integer should be converted first std::vector buf(len); + buf.reserve(len); for (uintptr_t i = 0; i < len; ++i) { buf[i] = static_cast(terms[i]); } @@ -726,6 +730,7 @@ struct TantivyIndexWrapper { bitset); } else { std::vector buf(len); + buf.reserve(len); for (uintptr_t i = 0; i < len; ++i) { buf[i] = static_cast(terms[i]); } @@ -736,6 +741,7 @@ struct TantivyIndexWrapper { if constexpr (std::is_same_v) { std::vector views; + views.reserve(len); for (uintptr_t i = 0; i < len; i++) { views.push_back(terms[i].c_str()); }