From: chris@... Date: 2019-05-21T09:42:35+00:00 Subject: [ruby-core:92742] [Ruby trunk Feature#15281] Speed up Set#intersect with size check. Issue #15281 has been updated by chrisseaton (Chris Seaton). I'm not sure it should be called `Tuple` - to me that implies that elements can appear more than once - that it's a multi-set - and this isn't the case. ---------------------------------------- Feature #15281: Speed up Set#intersect with size check. https://bugs.ruby-lang.org/issues/15281#change-78104 * Author: RGBD (Oleg Zubchenko) * Status: Assigned * Priority: Normal * Assignee: knu (Akinori MUSHA) * Target version: ---------------------------------------- Current implementation computes set intersection s1 & s2 in O(s2.size) time. It can be reduced to O([s1.size, s2.size].min) time. Additional speedup comes from using #each instead of #do_with_enum. See files attached for benchmarks. [Pull Request](https://github.com/ruby/ruby/pull/2003) P.S. using benchmark-ips gem ---Files-------------------------------- intersect.rb (1.91 KB) intersect_standalone.rb (671 Bytes) benchmark_results.txt (3.68 KB) -- https://bugs.ruby-lang.org/ Unsubscribe: