You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@datasketches.apache.org by ti...@apache.org on 2026/08/25 09:31:16 UTC

(datasketches-rust) branch main updated: perf(req): avoid cloning sorted compactor items (#222)

This is an automated email from the ASF dual-hosted git repository.

tisonkun pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/datasketches-rust.git


The following commit(s) were added to refs/heads/main by this push:
     new 162f2bc  perf(req): avoid cloning sorted compactor items (#222)
162f2bc is described below

commit 162f2bcd5018d020aba3efbddcf5b225e5c465d1
Author: tison <wa...@gmail.com>
AuthorDate: Tue Aug 25 17:31:10 2026 +0800

    perf(req): avoid cloning sorted compactor items (#222)
---
 datasketches/src/req/compactor.rs | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/datasketches/src/req/compactor.rs b/datasketches/src/req/compactor.rs
index 7d371f6..ea5c4b0 100644
--- a/datasketches/src/req/compactor.rs
+++ b/datasketches/src/req/compactor.rs
@@ -121,11 +121,14 @@ where
         debug_assert_eq!(self.lg_weight, other.lg_weight);
         self.state |= other.state;
         if !other.items.is_empty() {
-            // make sure both items are sorted.
             self.sort();
-            let mut other_items = other.items.clone();
-            other_items.sort_unstable_by(|a, b| a.total_cmp(b));
-            self.merge_sorted(&other_items);
+            if other.is_sorted {
+                self.merge_sorted(&other.items);
+            } else {
+                let mut other_items = other.items.clone();
+                other_items.sort_unstable_by(|a, b| a.total_cmp(b));
+                self.merge_sorted(&other_items);
+            }
         }
         // OR-ing the schedule counters can advance state past several doubling
         // thresholds at once. Loop until no more doublings are needed (C++:


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@datasketches.apache.org
For additional commands, e-mail: commits-help@datasketches.apache.org