From 2d120ccb4f79bc22b3575d47db5931348726bf43 Mon Sep 17 00:00:00 2001 From: Siddhartha Malladi Date: Thu, 27 Jun 2024 10:59:02 -0400 Subject: [PATCH 1/6] Added reserve for spans array in BatchSpanProcessor. Added reserve for spans array in BatchSpanProcessor. Helps to allocate the amount of memory needed for number of records so that dynamic memory allocation doesn't happen in the consume method. .push_back() reallocates memory each time the method is called. Using .reserve() would avoid memory reallocation as already the memory is allocated. References: https://cplusplus.com/reference/vector/vector/push_back/ https://cplusplus.com/reference/vector/vector/reserve/ --- sdk/src/trace/batch_span_processor.cc | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/sdk/src/trace/batch_span_processor.cc b/sdk/src/trace/batch_span_processor.cc index c5e72f8176..cd917e3505 100644 --- a/sdk/src/trace/batch_span_processor.cc +++ b/sdk/src/trace/batch_span_processor.cc @@ -206,6 +206,10 @@ void BatchSpanProcessor::Export() NotifyCompletion(notify_force_flush, exporter_, synchronization_data_); break; } + + //reserves the space for the number of records to be exported + spans_arr.reserve(num_records_to_export); + buffer_.Consume(num_records_to_export, [&](CircularBufferRange> range) noexcept { range.ForEach([&](AtomicUniquePtr &ptr) { From dbcc4a7f106ecc3cbf6eaf0eda4c9f9e14f13aca Mon Sep 17 00:00:00 2001 From: Siddhartha Malladi Date: Thu, 27 Jun 2024 14:55:49 -0400 Subject: [PATCH 2/6] Update sdk/src/trace/batch_span_processor.cc Co-authored-by: Marc Alff --- sdk/src/trace/batch_span_processor.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sdk/src/trace/batch_span_processor.cc b/sdk/src/trace/batch_span_processor.cc index cd917e3505..711e1a754b 100644 --- a/sdk/src/trace/batch_span_processor.cc +++ b/sdk/src/trace/batch_span_processor.cc @@ -207,9 +207,9 @@ void BatchSpanProcessor::Export() break; } - //reserves the space for the number of records to be exported + // reserves the space for the number of records to be exported spans_arr.reserve(num_records_to_export); - + buffer_.Consume(num_records_to_export, [&](CircularBufferRange> range) noexcept { range.ForEach([&](AtomicUniquePtr &ptr) { From f91df5282968f0720c28f583885bd9406762b710 Mon Sep 17 00:00:00 2001 From: Siddhartha Malladi Date: Thu, 27 Jun 2024 15:08:20 -0400 Subject: [PATCH 3/6] Added reserve for spans array in BatchLogProcessor. Added reserve for spans array in BatchLogProcessor. Same as previously done for BatchSpanProcessor --- sdk/src/logs/batch_log_record_processor.cc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sdk/src/logs/batch_log_record_processor.cc b/sdk/src/logs/batch_log_record_processor.cc index c85d56739e..9cd72b77d1 100644 --- a/sdk/src/logs/batch_log_record_processor.cc +++ b/sdk/src/logs/batch_log_record_processor.cc @@ -208,6 +208,8 @@ void BatchLogRecordProcessor::Export() break; } + // Reserve space for number of records and avoid reallocation of vector. + records_arr.reserve(num_records_to_export); buffer_.Consume(num_records_to_export, [&](CircularBufferRange> range) noexcept { range.ForEach([&](AtomicUniquePtr &ptr) { From b6ec481233c86a03a34555bcce1010a63d6d00de Mon Sep 17 00:00:00 2001 From: Siddhartha Malladi Date: Thu, 27 Jun 2024 15:27:57 -0400 Subject: [PATCH 4/6] Update batch_log_record_processor.cc --- sdk/src/logs/batch_log_record_processor.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/src/logs/batch_log_record_processor.cc b/sdk/src/logs/batch_log_record_processor.cc index 9cd72b77d1..1ed1210074 100644 --- a/sdk/src/logs/batch_log_record_processor.cc +++ b/sdk/src/logs/batch_log_record_processor.cc @@ -208,7 +208,7 @@ void BatchLogRecordProcessor::Export() break; } - // Reserve space for number of records and avoid reallocation of vector. + // Reserve space for the number of records records_arr.reserve(num_records_to_export); buffer_.Consume(num_records_to_export, [&](CircularBufferRange> range) noexcept { From 9f36f8a253a2b402143227f387740bba38d7dfd1 Mon Sep 17 00:00:00 2001 From: Siddhartha Malladi Date: Thu, 27 Jun 2024 15:29:03 -0400 Subject: [PATCH 5/6] Update batch_span_processor.cc --- sdk/src/trace/batch_span_processor.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/src/trace/batch_span_processor.cc b/sdk/src/trace/batch_span_processor.cc index 711e1a754b..03b79f6ebb 100644 --- a/sdk/src/trace/batch_span_processor.cc +++ b/sdk/src/trace/batch_span_processor.cc @@ -207,7 +207,7 @@ void BatchSpanProcessor::Export() break; } - // reserves the space for the number of records to be exported + // Reserve space for the number of records spans_arr.reserve(num_records_to_export); buffer_.Consume(num_records_to_export, From 17aeaba93ad6c073fb122eaf66b049d057200845 Mon Sep 17 00:00:00 2001 From: Marc Alff Date: Thu, 27 Jun 2024 23:16:07 +0200 Subject: [PATCH 6/6] Update sdk/src/logs/batch_log_record_processor.cc --- sdk/src/logs/batch_log_record_processor.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/src/logs/batch_log_record_processor.cc b/sdk/src/logs/batch_log_record_processor.cc index 1ed1210074..f5c35ad339 100644 --- a/sdk/src/logs/batch_log_record_processor.cc +++ b/sdk/src/logs/batch_log_record_processor.cc @@ -209,7 +209,7 @@ void BatchLogRecordProcessor::Export() } // Reserve space for the number of records - records_arr.reserve(num_records_to_export); + records_arr.reserve(num_records_to_export); buffer_.Consume(num_records_to_export, [&](CircularBufferRange> range) noexcept { range.ForEach([&](AtomicUniquePtr &ptr) {