确定解压缩流式压缩数据的最佳初始缓冲区大小

发布于 2024-07-23 06:41:57 字数 254 浏览 2 评论 0原文

我正在尝试计算解压缩未知大小的数据时使用的初始缓冲区大小。 我有一堆来自现有压缩流的数据点,但不知道分析它们的最佳方法。

数据点是压缩大小以及与未压缩大小的比率。 例如: 100425(压缩大小)x 1.3413(压缩比)= 134,700(未压缩大小)

压缩数据流不存储未压缩大小,因此解压缩器必须分配初始缓冲区大小,并在溢出时重新分配。 我将寻找“最佳”初始大小来分配给定压缩大小的缓冲区。 我有超过 293,000 个数据点。

I am trying to calculate an initial buffer size to use when decompressing data of an unknown size. I have a bunch of data points from existing compression streams but don't know the best way to analyze them.

Data points are the compressed size and the ratio to uncompressed size.
For example:
100425 (compressed size) x 1.3413 (compression ratio) = 134,700 (uncompressed size)

The compressed data stream doesn't store the uncompressed size so the decompressor has to alloc an initial buffer size and realloc if it overflows. I'll looking for the "best" initial size to alloc the buffer given the compressed size. I have over 293,000 data points.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

心凉怎暖 2024-07-30 06:41:57

鉴于您有很多关于压缩工作原理的数据点,我建议分析您的压缩数据,以获得平均压缩标准和标准差。 然后,我建议您将缓冲区大小最初设置为原始大小 * 压缩大小,比平均值高 2 个标准差; 这意味着您的缓冲区大小适合 93% 的情况。 如果您希望缓冲区在更多情况下不需要重新分配,请将标准差数量增加到您分配的平均值以上。

Given that you have a lot of data points of how your compression works, I'd recommend analyzing your compression data, to get a mean compression standard and a standard deviation. Then, I'd recommend setting your buffer size initially to your original size * your compression size at 2 standard deviations above the mean; this will mean that your buffer is the right size for 93% of your cases. If you want your buffer to not need reallocation for more cases, increase the number of standard deviations above the mean that you're allocating for.

甜柠檬 2024-07-30 06:41:57

一种简单的方法是使用通用的初始解压缩缓冲区大小,并在每次重新分配时将大小加倍。 这也被用在许多动态库中。

One simple method is to use a common initial decompression buffer size and double the size at each realloc. This is also used in many dynamic libraries.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文