From: ruby-core@... Date: 2018-11-03T15:51:48+00:00 Subject: [ruby-core:89697] [Ruby trunk Feature#15281] Speed up Set#intersect with size check. Issue #15281 has been updated by marcandre (Marc-Andre Lafortune). Thanks for the patch. Sadly, I don't think we can do that as `Set`s are ordered. That optimization would change the order of the resulting `Set` in some cases. ---------------------------------------- Feature #15281: Speed up Set#intersect with size check. https://bugs.ruby-lang.org/issues/15281#change-74740 * Author: RGBD (Oleg Zubchenko) * Status: Open * Priority: Normal * Assignee: * 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: