From: "gregolsen (Innokenty Mikhailov)" <anotheroneman@...> Date: 2013-06-27T05:24:38+09:00 Subject: [ruby-core:55665] [ruby-trunk - Feature #6183] Enumerator::Lazy performance issue Issue #6183 has been updated by gregolsen (Innokenty Mikhailov). File 26_06_2013_2.diff added @nobu thanks for pointing! Indeed hybrid flag is already obsolete since I'm checking for proc_entry presence. If no proc entries present - than it's effectively a hybrid case. Fixed patch attached. PS I'm using this github branch - https://github.com/gregolsen/ruby/tree/enumerator_lazy_optimization Should I still attach diffs here? ---------------------------------------- Feature #6183: Enumerator::Lazy performance issue https://bugs.ruby-lang.org/issues/6183#change-40170 Author: gregolsen (Innokenty Mikhailov) Status: Assigned Priority: Low Assignee: zzak (Zachary Scott) Category: Target version: I benchmarked Enumerator::Lazy and that's what I got: user system total real Lazy: 0.690000 0.010000 0.700000 ( 0.733160) Normal: 0.160000 0.010000 0.170000 ( 0.186695) It seems like even with 4 chain links and 3000 elements in initial array, Lazy enumerator is almost 4(!) times slower than the normal case. Instead of performance benefit we've got 4 times performance drawback. See test file attached. -- http://bugs.ruby-lang.org/