Skip to content

Releases: brantburnett/Snappier

release/1.1.6

05 Mar 23:39
f70627d
Compare
Choose a tag to compare

What's Changed

Full Changelog: release/1.1.5...release/1.1.6

release/1.1.5

23 Jan 12:57
adcc68b
Compare
Choose a tag to compare

What's Changed

  • Update README.md - Correcting wrong descriptions by @mjebrahimi in #91
  • Switch NuGet to use a license expression to assist with SBOM analysis by @brantburnett in #93

New Contributors

Full Changelog: release/1.1.4...release/1.1.5

release/1.1.4

15 Jan 04:20
e4eb986
Compare
Choose a tag to compare

This release primarily includes performance improvements around stream decompression in .NET 8, but does show some minor decompression improvements on other runtimes (except .NET 4.8 which is not a priority). Also includes a bug fix for a stream decompression corner case.

What's Changed

Decompression Benchmarks

BenchmarkDotNet v0.13.10, Windows 11 (10.0.22621.3007/22H2/2022Update/SunValley2)
12th Gen Intel Core i7-1270P, 1 CPU, 16 logical and 12 physical cores
.NET SDK 8.0.101

Method Runtime Build PGO Mean Error StdDev Ratio RatioSD Rank
BlockDecompress .NET Framework 4.8 Previous N 14.55 us 0.089 us 0.079 us 1.00 0.00 1
BlockDecompress .NET Framework 4.8 Default N 15.78 us 0.189 us 0.158 us 1.08 0.01 2
BlockDecompress .NET 6.0 Previous N 12.99 us 0.151 us 0.134 us 1.00 0.00 2
BlockDecompress .NET 6.0 Default N 12.75 us 0.181 us 0.170 us 0.98 0.02 1
BlockDecompress .NET 8.0 Previous N 10.57 us 0.208 us 0.214 us 1.00 0.00 2
BlockDecompress .NET 8.0 Default N 10.30 us 0.163 us 0.152 us 0.97 0.02 1
BlockDecompress .NET 8.0 Previous Y 10.51 us 0.198 us 0.194 us 1.00 0.00 2
BlockDecompress .NET 8.0 Default Y 10.15 us 0.173 us 0.162 us 0.97 0.02 1
Method Runtime Build PGO Mean Error StdDev Ratio RatioSD Rank
StreamDecompress .NET Framework 4.8 Previous N 337.3 us 6.35 us 5.94 us 1.00 0.00 1
StreamDecompress .NET Framework 4.8 Default N 332.4 us 5.09 us 4.51 us 0.99 0.02 1
StreamDecompress .NET 6.0 Previous N 164.9 us 2.57 us 2.40 us 1.00 0.00 2
StreamDecompress .NET 6.0 Default N 161.2 us 3.21 us 3.29 us 0.98 0.02 1
StreamDecompress .NET 8.0 Previous N 194.4 us 2.16 us 2.02 us 1.00 0.00 2
StreamDecompress .NET 8.0 Default N 189.6 us 2.59 us 2.42 us 0.98 0.02 1
StreamDecompress .NET 8.0 Previous Y 201.7 us 4.01 us 4.45 us 1.00 0.00 2
StreamDecompress .NET 8.0 Default Y 176.6 us 3.49 us 3.43 us 0.87 0.03 1

Full Changelog: release/1.1.3...release/1.1.4

release/1.1.3

01 Dec 18:31
425a50b
Compare
Choose a tag to compare

What's Changed

Full Changelog: release/1.1.2...release/1.1.3

1.1.2

09 Nov 03:47
b1a6cfa
Compare
Choose a tag to compare

What's Changed

New Contributors

  • @ak88 made their first contribution in #77

Full Changelog: release/1.1.1...release/1.1.2

1.1.1

27 Mar 11:46
d7ac526
Compare
Choose a tag to compare

This release includes some fixes to logic that could have caused unsafe memory access in cases where GC rearranges memory if they occurred at the precise moment when an out-of-range reference was on the stack. These moments are very short-lived and should be impossible to create intentionally, but they still represent a security risk.

What's Changed

Full Changelog: release/1.1.0...release/1.1.1

1.1.0

12 Mar 13:27
e3c9834
Compare
Choose a tag to compare

Breaking Changes

This release no longer includes explicit support for the unsupported runtimes .NET Core 3.0/3.1 or .NET 5.0. These runtimes are now supported via the .NET Standard 2.0 target. While they should still function, it is untested and the lack of hardware intrinsic support will most likely result in degraded performance compared to 1.0.

What's Changed

  • All use of GC pinning and fixed buffers has been replaced with byte references and System.Runtime.CompilerServices.Unsafe. This should have less impact on garbage collection performance, especially on systems with continuous Snappy load.
  • Reduced heap allocations
  • Ported some performance improvements from the reference implementation that were added since the original port
  • Lots more performance tweaks

Performance

This release sees a consistent improvement in both compression and decompression performance across all supported frameworks on my Core i7-10850H CPU, especially on decompression. On .NET 6, the time was reduced by 18% when compressing 64KB of HTML and 52% when decompressing. In some cases, the decompression time is reduced by as much as 66%.

ChartGo
ChartGo (1)

Changelog

Full Changelog: release/1.0.0...release/1.1.0

Initial release

23 Jan 17:40
27b3d82
Compare
Choose a tag to compare

Note that this release is focused on performance on Intel/AMD x64 processes on .NET Core 3.1 or .NET 5. It uses Intel intrinsics extensively, so performance will be slower on other CPU architectures or runtimes.

1.0.0 Beta 2

03 Nov 01:38
d7b234a
Compare
Choose a tag to compare
1.0.0 Beta 2 Pre-release
Pre-release

Various bug fixes found during beta

1.0.0 Beta 1

22 Oct 17:59
1fb947c
Compare
Choose a tag to compare
1.0.0 Beta 1 Pre-release
Pre-release
release/1.0.0-beta001

Correct working directory for publish (#22)