Commit Graph

12 Commits

Author SHA1 Message Date
Andy Balholm 349ed2fce1 Add matchfinder package.
I've been experimenting for a while with a new brotli compressor.
Instead of being a translation of the C implementation,
it's a rewrite in Go, with a modular structure thanks to interfaces.
(A few low-level functions still come from the C version, though.)

The performance is getting to the point where it seems to be worth
adding to the brotli repository.
2023-12-28 16:09:32 -08:00
Andy Balholm 94609f9606 Revert "Faster bit writing."
This reverts commit c3da72aa01.

With the sample data from issue 22, one byte in the output file is zero
instead of the correct value. For now at least, we'll go back to the old
way of writing bits.

Fixes #22
2021-04-27 10:48:28 -07:00
Andy Balholm c3da72aa01 Faster bit writing.
Replace the functions in write_bits.go with a bitWriter type based on
the compress/flate package.
2020-06-18 18:58:27 -07:00
Erik Dubbelboer a01a7b12c9 Reuse buffers and objects using sync.Pool
This reduces the amount of garbage generated and relieves pressure on
the GC.

For a workload without reusing the Writer (using Writer.Reset) the number of allocations goes from 31 to 9.
While for a workload when you reuse the Writer the number of allocations goes from 25 to 0.
2020-05-10 10:36:19 +02:00
Andy Balholm e2c5f2109f Use len and cap instead of num_commands_ and cmd_alloc_size_. 2020-05-08 16:48:16 -07:00
Andy Balholm b2497e8d72 Revert "Use sort.Sort to sort Huffman trees."
This reverts commit 6b5963335e.

It doesn't really have the performance benefit I thought it did.
2020-05-08 13:52:56 -07:00
Andy Balholm 6b5963335e Use sort.Sort to sort Huffman trees. 2020-05-07 17:51:21 -07:00
Andy Balholm ac459dee64 Fix excessive allocations if sortHuffmanTreeItems.
Fixes #11
2020-05-04 15:04:20 -07:00
Andy Balholm 55e85f3f75 Finish un-exporting symbols. 2019-03-15 18:00:20 -07:00
Andy Balholm 7b66c0a2f2 Un-export some more symbols 2019-03-15 17:24:40 -07:00
Andy Balholm 906c822ef2 Un-export more symbols 2019-03-15 12:05:31 -07:00
Andy Balholm 69a32ecc1a Initial commit.
This is the output of c2go, except for util.go.
2019-03-06 14:55:38 -08:00