From fab0b0850bb1c637bffb6233780c2129eff9ab4c Mon Sep 17 00:00:00 2001 From: bicarlsen Date: Wed, 9 Jul 2025 01:36:34 +0200 Subject: [PATCH] Use binary search when `subscribe`ing Use binary search when `subscribe`ing to a `SubscriberSet`. In tests, reduced `subscribe` time by 7 to 10 times. --- reactive_graph/src/graph/sets.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/reactive_graph/src/graph/sets.rs b/reactive_graph/src/graph/sets.rs index f607473caa..139b084283 100644 --- a/reactive_graph/src/graph/sets.rs +++ b/reactive_graph/src/graph/sets.rs @@ -68,8 +68,8 @@ impl SubscriberSet { } pub fn subscribe(&mut self, subscriber: AnySubscriber) { - if !self.0.contains(&subscriber) { - self.0.push(subscriber); + if let Err(idx) = self.0.binary_search_by_key(&subscriber.0, |s| s.0) { + self.0.insert(idx, subscriber) } }