Tim Schumacher
b1136ba357
AK: Efficiently resize CircularBuffer seekback copy distance
...
Previously, if we copied the last byte for a length of 100, we'd
recalculate the read span 100 times and memmove one byte 100 times,
which resulted in a lot of overhead.
Now, if we know that we have two consecutive copies of the data, we just
extend the distance to cover both copies, which halves the number of
times that we recalculate the span and actually call memmove.
This takes the running time of the attached benchmark case from 150ms
down to 15ms.
2023-04-14 10:03:42 +02:00
..
2023-01-18 22:58:42 +01:00
2023-03-29 21:35:53 -04:00
2023-02-05 09:46:51 -07:00
2023-02-05 09:46:51 -07:00
2023-03-04 22:10:03 -07:00
2023-03-09 21:43:54 +01:00
2023-03-09 21:43:54 +01:00
2023-04-02 10:54:37 +02:00
2023-04-09 18:09:23 -06:00
2023-03-09 21:43:54 +01:00
2023-04-12 19:37:35 +02:00
2023-04-08 13:43:25 +02:00
2023-04-14 10:03:42 +02:00
2023-04-05 07:30:38 -04:00
2023-03-21 10:25:13 +01:00
2023-02-04 18:47:02 -07:00
2023-03-21 10:25:13 +01:00
2023-03-21 10:25:13 +01:00
2023-03-21 10:25:13 +01:00
2023-03-21 10:25:13 +01:00
2023-03-17 09:36:20 +01:00
2023-03-10 13:15:44 +01:00
2023-03-10 13:15:44 +01:00
2023-03-10 13:15:44 +01:00
2023-03-28 15:55:35 +01:00
2023-01-28 22:41:36 +01:00
2023-01-21 10:36:14 +01:00
2023-02-12 13:13:15 -07:00
2023-02-12 13:13:15 -07:00
2023-04-12 07:33:15 -04:00
2023-02-10 09:14:20 +00:00
2023-02-10 12:15:02 +01:00
2023-02-08 19:15:45 +00:00
2023-04-12 19:37:35 +02:00
2023-03-05 13:49:43 +01:00
2023-03-11 18:32:33 +00:00
2023-04-06 23:49:08 +02:00
2023-04-11 13:03:30 +02:00
2023-04-11 13:03:30 +02:00
2023-03-21 10:25:13 +01:00
2023-02-04 18:47:02 -07:00
2023-01-21 10:43:59 -07:00
2023-02-28 12:55:10 +00:00
2023-02-17 22:29:51 -07:00
2023-03-03 11:02:21 +00:00
2023-03-15 21:43:52 +01:00
2023-02-10 09:14:20 +00:00
2023-04-07 16:02:22 +02:00
2023-01-27 20:33:18 +00:00
2023-04-06 09:57:31 +03:30
2023-01-27 20:38:49 +00:00
2023-02-03 07:19:52 -05:00
2023-02-03 07:19:52 -05:00
2023-01-21 10:43:59 -07:00
2023-01-17 19:52:52 -05:00
2023-01-17 19:52:52 -05:00
2023-01-17 19:52:52 -05:00
2023-01-29 19:16:44 -07:00
2023-02-13 00:50:07 +00:00
2023-04-13 20:24:25 +02:00
2023-01-29 19:16:44 -07:00
2023-02-08 19:15:45 +00:00
2023-03-13 15:16:20 +00:00
2023-03-13 15:16:20 +00:00
2023-03-09 21:43:54 +01:00
2023-02-21 09:22:18 +01:00
2023-04-11 13:03:30 +02:00
2023-04-11 13:03:30 +02:00
2023-03-29 07:19:14 +02:00
2023-02-28 15:52:24 +03:30
2023-02-28 15:52:24 +03:30
2023-02-11 08:53:00 -05:00
2023-04-08 13:43:25 +02:00
2023-01-21 10:43:59 -07:00
2023-03-14 16:52:44 +01:00
2023-02-03 19:04:15 +01:00
2023-04-03 15:53:49 +02:00
2023-02-21 09:22:18 +01:00
2023-03-03 21:53:41 +01:00
2023-01-27 20:38:49 +00:00
2023-04-03 15:53:49 +02:00
2023-03-04 21:34:54 -07:00
2023-02-03 19:04:15 +01:00
2023-02-04 18:47:02 -07:00
2023-04-12 15:23:51 +02:00
2023-03-13 15:16:20 +00:00
2023-03-13 15:16:20 +00:00
2023-03-13 15:16:20 +00:00
2023-03-09 21:54:59 +01:00
2023-03-09 15:51:00 +00:00
2023-03-09 15:51:00 +00:00
2023-03-04 22:10:03 -07:00
2023-03-09 21:43:54 +01:00
2023-02-21 00:54:04 +01:00
2023-02-21 00:54:04 +01:00
2023-03-10 13:15:44 +01:00
2023-03-10 13:15:44 +01:00
2023-03-10 13:15:44 +01:00
2023-03-14 21:34:32 +00:00
2023-01-21 10:43:59 -07:00
2023-03-09 21:43:54 +01:00
2023-02-10 09:08:52 +00:00
2023-03-09 21:43:54 +01:00
2023-03-05 13:49:43 +01:00
2023-03-04 22:10:03 -07:00
2023-03-09 21:43:54 +01:00
2023-04-12 07:40:22 +02:00
2023-04-12 07:40:22 +02:00
2023-04-12 07:40:22 +02:00
2023-04-11 16:28:20 +02:00
2023-03-09 21:43:54 +01:00
2023-03-13 15:16:02 +00:00
2023-03-22 19:45:40 +01:00
2023-01-22 21:30:44 +00:00
2023-02-08 19:15:45 +00:00
2023-02-22 10:14:36 +01:00
2023-03-08 18:57:53 +00:00
2023-02-17 16:22:56 +00:00
2023-04-13 09:53:47 +02:00
2023-02-05 15:38:19 +01:00