Array object commonly store data in a vector, consisting of a portion that is in use, a pre-capacity (m_indexBias) and a post-capacity (the delta between m_length and m_vectorLength). Calls to shift with grow the pre-capacity, and the current algorithm for increaseVectorLength (used by push, or [[Put]]) will never shrink the pre-capacity, so a push/shift fifo may consume an inordinate amount of memory, whilst having a relatively small active length.
Created attachment 121237 [details] Fix 10% overall speedup on the micro-benchmark attached to bug #75588 , largely due to a 20x speedup on the two smaller fifo tests (I think this makes sense - they'll currently be serving as tests for the OS's memory allocation speed!)
Comment on attachment 121237 [details] Fix Attachment 121237 [details] did not pass chromium-ews (chromium-xvfb): Output: http://queues.webkit.org/results/11146007 New failing tests: http/tests/inspector/network/download.html
(In reply to comment #2) > (From update of attachment 121237 [details]) > Attachment 121237 [details] did not pass chromium-ews (chromium-xvfb): > Output: http://queues.webkit.org/results/11146007 > > New failing tests: > http/tests/inspector/network/download.html Works for me, and this bug doesn't affect Chromium. Bad EWS.
Fixed in 104184.