From: "zzak (Zachary Scott)" <zachary@...> Date: 2012-11-19T12:18:23+09:00 Subject: [ruby-core:49554] [ruby-trunk - Feature #7393][Open] Fix array behaviour when it is used as a queue: github#174 Issue #7393 has been reported by zzak (Zachary Scott). ---------------------------------------- Feature #7393: Fix array behaviour when it is used as a queue: github#174 https://bugs.ruby-lang.org/issues/7393 Author: zzak (Zachary Scott) Status: Open Priority: Normal Assignee: mame (Yusuke Endoh) Category: core Target version: 2.0.0 =begin from github: https://github.com/ruby/ruby/pull/174 When array is used intensively as a queue (ie repeated push/shift calls), then its performance degrades very quickly with array's size (especially when almost every shift is followed be push), cause each push which is called after shift leads to allocation of new memory space and copying all items to. This pull request fixes it in following way: * reuse shared array's storage when array is a single owner of shared array. * try to push items directly into shared array when array is a single owner of shared array * try to unshift items directly into shared array when array is a single owner (and allocate room for futher unshifts) =end -- http://bugs.ruby-lang.org/