Software /
code /
prosody
File
.hgtags @ 10973:39991e40d1dc
util.dbuffer: dynamic string buffer
Similar to util.ringbuffer (and shares almost identical API). Differences:
- size limit is optional and dynamic
- does not allocate a fixed buffer of max_size bytes
- focus on simply storing references to existing string objects where possible,
avoiding unnecessary allocations
- references are still stored in a ring buffer to enable use as a fast FIFO
Optional second parameter to new() provides the number of ring buffer segments. On
Lua 5.2 on my laptop, a segment is ~19 bytes. If the ring buffer fills up, the next
write will compact all strings into a single item.
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Fri, 26 Jun 2020 16:41:31 +0100 |
parent | 10607:a845c877d997 |
child | 11061:45e1c467a3a7 |
line wrap: on
line source
c157c1412bda91b6e075e70875b4605e3e20b290 0.1.0 90da4c9b34b52dc3c3cc2c8f9e633364f7caec16 0.2 90da4c9b34b52dc3c3cc2c8f9e633364f7caec16 0.20 90da4c9b34b52dc3c3cc2c8f9e633364f7caec16 -m 90da4c9b34b52dc3c3cc2c8f9e633364f7caec16 Fix incorrect version number as tag 90da4c9b34b52dc3c3cc2c8f9e633364f7caec16 0.20 90da4c9b34b52dc3c3cc2c8f9e633364f7caec16 -m 90da4c9b34b52dc3c3cc2c8f9e633364f7caec16 Fix incorrect version number as tag 90da4c9b34b52dc3c3cc2c8f9e633364f7caec16 0.2.0 90da4c9b34b52dc3c3cc2c8f9e633364f7caec16 -m 90da4c9b34b52dc3c3cc2c8f9e633364f7caec16 Fix incorrect version number as tag (again) 90da4c9b34b52dc3c3cc2c8f9e633364f7caec16 0.2.0 90da4c9b34b52dc3c3cc2c8f9e633364f7caec16 0.2.0 0000000000000000000000000000000000000000 0.2 0000000000000000000000000000000000000000 0.20 0000000000000000000000000000000000000000 -m 0000000000000000000000000000000000000000 Fix incorrect version number as tag 0000000000000000000000000000000000000000 Fix incorrect version number as tag (again) 59c3f9a4996969b44180caf7c76430b8edf49426 0.2.0 8e77a39826c2cd7bb903cf2091473dbfe33f4d2b 0.3.0 13ae298c67d78485f1d795fcc7ffeb2057876fb7 0.3.0 84202314ab7f974f7e3b5706e65ddadb9b99274b 0.4.0 4aff205cc4cd5e1e22f5130fecc47d24be1ee5bf 0.4.0 b2e548344d61ebbfd1474baedc5aa187f874948a 0.4.1 b1b42ce4f0f6a8f587c2925724694c0e8b437dce 0.4.2 6b91a2b39680f0f7195fec561a3ce3d660ea0c20 0.4.2 06030af44faddd7d3c20e7d380bb55b92b079c5f 0.5.0 a63ff2fbba8d0a29503e7552a29fc7c831faa23c 0.5.1 cea841708dd462c7634df68e84429402f6cdf71d 0.5.2 cea841708dd462c7634df68e84429402f6cdf71d 0.5.2 7c45ae42923a1ef03406e481af2a4a6f356361b8 0.5.2 7c45ae42923a1ef03406e481af2a4a6f356361b8 0.5.2 e32593074602a785d152f9e153825f29db4d0973 0.5.2 e32593074602a785d152f9e153825f29db4d0973 0.5.2 5ae3209fefa2c8dc1c53d08c2c1caa340b8ec542 0.5.2 1a99a3bf3ce6dbdfb362b7fd101d761fb3cc10af 0.6.0 81b4e738e4d321b78274132f63a9aec7007e64eb 0.6.1 0395f2f34bd55a01ec7276884fb9a4e0051b0e7a 0.6.2 ea80531e5cbc567c3e211d38749c45e8b66d33b7 0.7.0 ea80531e5cbc567c3e211d38749c45e8b66d33b7 0.7.0 5ea90ee96022b9c106e7e79b4a1d8b2ee99d45dc 0.7.0 49b9e73e31ef38ff1c0141a83f897b5837c40d83 0.8.0 aa905291a66c7d8168b1cb912bb173e6478dac05 0.8.1 aa905291a66c7d8168b1cb912bb173e6478dac05 0.8.1 3421dfaa81880201e9ade8b4eee727ade9a9ce33 0.8.1 44b131d7041ba40ff2cab6519d1543d33ff679a4 0.8.2 6ef79af0c4455851ae45fa4da1033ba2cccada88 0.9.0 6bc4077bc1f96ff83795fcc423ff270a28156d1c 0.9.1 49e3c49eb0d8f33e94e2bf37e5421deacac5f499 0.9.2 49e3c49eb0d8f33e94e2bf37e5421deacac5f499 0.9.2 56b1f151f4a31fcc7dbde49e064a288715077ece 0.9.2 872ff4851c9b6cd662aac4b1a056ac2a97c85ce5 0.9.3 5d73412aa1ba39081683ab922575eae93e4e867a 0.9.4 8dee696c33cc5f7463c8b9e9fe806b9abd24c115 0.9.5 e4b998ffc92249ea96716ab878f961f03769339d 0.9.6 9030b056bd4a5b8402c9b1e1cd65dd35f046032f 0.9.7 b1c84d220c409b7b17cd41e850576db253406b0a 0.9.8 7ec52755622f1009aaf7b02fc9bc91e8ad9974be 0.9.9 352270bc04393910a567b569ede03358dbb728b5 0.9.10 8613086779fa9276615c2af066d2a10c38d0c86e 0.9.11 2a7b52437167a5c7b6c8a5bc79f4463afe092fd5 0.9.12 39966cbc29f46d7ae9660edca8683d5121c82edf 0.10.0 082d127286451eb55420c36424dd321e8d9bceee 0.9.13 4ae8dd415e9431924ad4aa0b57bcee8a4a9272f8 0.10.1 29c6d2681bad9f67d8bd548bb3a7973473bae91e 0.9.14 7ec098b68042f60687f1002e788b34b06048945d 0.10.2 83f3a05c1b1bb9b54b3b153077a06eb02e247c8e 0.11.0 91856829f18bb8ef7056ca02464122fc6de17807 0.11.1 bb8486491b48431236c0d32548c20d9853781e69 0.10.3 4f8b6c09e5f328e3d3d4233dc78fa4fd0535171c 0.11.2 dd7e924c74ef27b7f92eb872d2db50aaa229b234 0.11.3 10d6d0d91f4ec47a6eb446792fee1d4b79a914d7 0.11.4 dbd60f47316492bc367802914dc8fa47f4b3edac 0.11.5