From 50c233b58c68b9efd5242cc2b0d72ae5ab16e798 Mon Sep 17 00:00:00 2001 From: Mike Lang <mikelang3000@gmail.com> Date: Thu, 20 Mar 2025 04:53:52 +1100 Subject: [PATCH] fix copy paste error in v3/v4 and benchmark duplicate merges Merging 1000 duplicates of the same batch: v1: 98ms v2: 101ms v3: 116ms v4: 116ms So as expected v3 and v4 have a small cost with duplicates for optimizing for non-overlapping, but even with ridiculous numbers duplicates are fast to process anyway. --- merge_v3.py | 4 ++-- merge_v4.py | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/merge_v3.py b/merge_v3.py index 5bf6367..3cc3137 100644 --- a/merge_v3.py +++ b/merge_v3.py @@ -57,13 +57,13 @@ def merge_messages(*batches): if id is None: merged = merge_message(message, candidate) if merged is not None: - candidates.pop(index) + batch.pop(index) break elif (candidate.get("tags") or {}).get("id") == id: merged = merge_message(message, candidate) if merged is None: raise ValueError("TODO") - candidates.pop(index) + batch.pop(index) break if merged is not None: message = merged diff --git a/merge_v4.py b/merge_v4.py index 20df1ab..6983f98 100644 --- a/merge_v4.py +++ b/merge_v4.py @@ -85,13 +85,13 @@ def merge_messages(*batches): if id is None: merged = merge_message(message, candidate) if merged is not None: - candidates.pop(index) + batch.pop(index) break elif (candidate.get("tags") or {}).get("id") == id: merged = merge_message(message, candidate) if merged is None: raise ValueError("TODO") - candidates.pop(index) + batch.pop(index) break if merged is not None: message = merged