Commit Graph

10 Commits

Author SHA1 Message Date
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