MyGit

v1.4.0

facebook/zstd

版本发布时间: 2019-04-17 06:53:28

facebook/zstd最新发布版本:v1.5.6(2024-03-31 02:57:28)

Advanced API

The main focus of the v1.4.0 release is the stabilization of the advanced API.

The advanced API provides a way to set specific parameters during compression and decompression in an API and ABI compatible way. For example, it allows you to compress with multiple threads, enable --long mode, set frame parameters, and load dictionaries. It is compatible with ZSTD_compressStream*() and ZSTD_compress2(). There is also an advanced decompression API that allows you to set parameters like maximum memory usage, and load dictionaries. It is compatible with the existing decompression functions ZSTD_decompressStream() and ZSTD_decompressDCtx().

The old streaming functions are all compatible with the new API, and the documentation provides the equivalent function calls in the new API. For example, see ZSTD_initCStream(). The stable functions will remain supported, but the functions in the experimental sections, like ZSTD_initCStream_usingDict(), will eventually be marked as deprecated and removed in favor of the new advanced API.

The examples have all been updated to use the new advanced API. If you have questions about how to use the new API, please refer to the examples, and if they are unanswered, please open an issue.

Performance

Zstd's fastest compression level just got faster! Thanks to ideas from Intel's igzip and @gbtucker, we've made level 1, zstd's fastest strategy, 6-8% faster in most scenarios. For example on the Silesia Corpus with level 1, we see 0.2% better compression compared to zstd-1.3.8, and these performance figures on an Intel i9-9900K:

Version C. Speed D. Speed
1.3.8 gcc-8 489 MB/s 1343 MB/s
1.4.0 gcc-8 532 MB/s (+8%) 1346 MB/s
1.3.8 clang-8 488 MB/s 1188 MB/s
1.4.0 clang-8 528 MB/s (+8%) 1216 MB/s

New Features

A new experimental function ZSTD_decompressBound() has been added by @shakeelrao. It is useful when decompressing zstd data in a single shot that may, or may not have the decompressed size written into the frame. It is exact when the decompressed size is written into the frame, and a tight upper bound within 128 KB, as long as ZSTD_e_flush and ZSTD_flushStream() aren't used. When ZSTD_e_flush is used, in the worst case the bound can be very large, but this isn't a common scenario.

The parameter ZSTD_c_literalCompressionMode and the CLI flag --[no-]compress-literals allow users to explicitly enable and disable literal compression. By default literals are compressed with positive compression levels, and left uncompressed for negative compression levels. Disabling literal compression boosts compression and decompression speed, at the cost of compression ratio.

Detailed list of changes

相关地址:原始地址 下载(tar) 下载(zip)

1、 zstd-1.4.0.tar.gz 1.8MB

2、 zstd-1.4.0.tar.gz.sha256 84B

3、 zstd-1.4.0.tar.zst 1.29MB

4、 zstd-1.4.0.tar.zst.sha256 85B

5、 zstd-v1.4.0-win32.zip 1.2MB

6、 zstd-v1.4.0-win64.zip 1.29MB

查看:2019-04-17发行的版本