Chris Tate
9632906b4d
Take from a Readable's buffered queue by moving its head index
...
Taking the head entry of a Readable's buffer moved every remaining entry
down one slot, so draining a queue of n buffered chunks cost O(n²). The
buffer now keeps the index of its first entry: a take advances it, a push
at the tail moves the entries down only when at least half the slots are
free at the front (and grows otherwise), and unshift takes a freed front
slot when there is one. The drop, trace and boxing loops walk the entries
from that index.
The stream-buffered-drain runtime workload buffers 200,000 objects and
100,000 Buffers before draining them; corpus 8533 covers reads across
entries, unshift into a freed slot and onto a part-read head, setEncoding
after takes, and object-mode takes, unshifts and pushes.
2026-10-29 14:59:10 -05:00
..
2026-10-20 18:08:10 -05:00
2026-10-08 09:38:23 -07:00
2026-10-20 18:08:10 -05:00
2026-10-08 09:38:23 -07:00
2026-10-20 18:08:10 -05:00
2026-10-08 09:38:23 -07:00
2026-10-20 18:08:10 -05:00
2026-10-16 00:06:31 -05:00
2026-10-20 18:08:10 -05:00
2026-10-19 23:24:56 -05:00
2026-10-20 18:08:10 -05:00
2026-10-08 15:33:00 -05:00
2026-10-20 18:08:10 -05:00
2026-10-08 09:38:23 -07:00
2026-10-20 18:08:10 -05:00
2026-10-15 18:26:48 -05:00
2026-10-23 22:08:02 -05:00
2026-10-23 22:08:02 -05:00
2026-10-22 13:49:49 -05:00
2026-10-22 13:49:49 -05:00
2026-10-22 23:52:25 -05:00
2026-10-22 23:52:25 -05:00
2026-10-24 08:22:30 -05:00
2026-10-24 08:22:30 -05:00
2026-10-20 18:08:10 -05:00
2026-10-08 09:38:23 -07:00
2026-10-25 14:49:00 -07:00
2026-10-25 14:49:00 -07:00
2026-10-20 18:08:10 -05:00
2026-10-08 15:33:00 -05:00
2026-10-23 09:53:05 -05:00
2026-10-23 09:53:05 -05:00
2026-10-20 18:08:10 -05:00
2026-10-20 18:08:10 -05:00
2026-10-20 18:08:10 -05:00
2026-10-20 18:08:10 -05:00
2026-10-15 19:59:56 -05:00
2026-10-20 18:08:10 -05:00
2026-10-20 18:08:10 -05:00
2026-10-08 09:38:23 -07:00
2026-10-23 22:31:08 -05:00
2026-10-23 22:31:08 -05:00
2026-10-23 13:20:59 -05:00
2026-10-23 13:20:59 -05:00
2026-10-28 00:22:04 -05:00
2026-10-28 00:22:04 -05:00
2026-10-25 01:35:28 -05:00
2026-10-25 01:35:28 -05:00
2026-10-20 18:08:10 -05:00
2026-10-08 15:51:42 -05:00
2026-10-20 18:08:10 -05:00
2026-10-20 18:08:10 -05:00
2026-10-15 17:47:34 -05:00
2026-10-20 18:08:10 -05:00
2026-10-08 09:38:23 -07:00
2026-10-28 16:22:38 -05:00
2026-10-28 16:22:38 -05:00
2026-10-20 18:08:10 -05:00
2026-10-14 13:02:38 -05:00
2026-10-20 18:08:10 -05:00
2026-10-15 22:19:05 -05:00
2026-10-20 18:08:10 -05:00
2026-10-14 21:07:40 -05:00
2026-10-26 16:59:12 -07:00
2026-10-26 16:59:12 -07:00
2026-10-20 18:08:10 -05:00
2026-10-08 09:38:23 -07:00
2026-10-20 18:08:10 -05:00
2026-10-08 09:38:23 -07:00
2026-10-25 06:16:32 -05:00
2026-10-25 06:16:32 -05:00
2026-10-20 18:08:10 -05:00
2026-10-15 22:22:32 -05:00
2026-10-29 14:59:10 -05:00
2026-10-29 14:59:10 -05:00
2026-10-25 13:00:18 -05:00
2026-10-25 13:00:18 -05:00
2026-10-20 18:08:10 -05:00
2026-10-08 09:38:23 -07:00
2026-10-20 18:08:10 -05:00
2026-10-20 18:08:10 -05:00
2026-10-18 04:11:02 -05:00
2026-10-24 11:03:34 -05:00
2026-10-24 11:03:34 -05:00
2026-10-22 01:11:37 -05:00
2026-10-22 08:31:12 -05:00
2026-10-15 14:19:47 -05:00
2026-10-20 18:08:10 -05:00
2026-10-15 14:19:47 -05:00
2026-10-20 18:08:10 -05:00
2026-10-15 14:19:47 -05:00
2026-10-20 18:08:10 -05:00
2026-10-20 14:11:26 -05:00
2026-10-24 18:39:02 -05:00
2026-10-24 18:39:02 -05:00
2026-10-20 18:08:10 -05:00
2026-10-08 09:38:23 -07:00
2026-10-20 18:08:10 -05:00
2026-10-14 02:44:11 -05:00
2026-10-20 18:08:10 -05:00
2026-10-17 12:07:26 -07:00
2026-10-20 18:08:10 -05:00
2026-10-08 09:38:23 -07:00
2026-10-20 19:05:22 -05:00
2026-10-19 07:46:06 -05:00