|
|
Created:
11 years, 6 months ago by remyoudompheng Modified:
11 years, 6 months ago Reviewers:
agl1 CC:
golang-dev, dave_cheney.net, bradfitz, agl1 Visibility:
Public. |
Descriptioncompress/bzip2: faster decoding.
benchmark old ns/op new ns/op delta
BenchmarkDecodeDigits 19451173 14347829 -26.24%
BenchmarkDecodeTwain 57516800 42619978 -25.90%
benchmark old MB/s new MB/s speedup
BenchmarkDecodeDigits 2.22 3.01 1.36x
BenchmarkDecodeTwain 2.17 2.93 1.35x
Patch Set 1 #Patch Set 2 : diff -r 7bd52af9db1c https://go.googlecode.com/hg/ #Patch Set 3 : diff -r 7bd52af9db1c https://go.googlecode.com/hg/ #
Total comments: 5
Patch Set 4 : diff -r 4e0de2c84cc1 https://go.googlecode.com/hg/ #
MessagesTotal messages: 9
Hello golang-dev@googlegroups.com (cc: golang-dev@googlegroups.com), I'd like you to review this change to https://go.googlecode.com/hg/
Sign in to reply to this message.
On 2013/05/31 20:11:53, remyoudompheng wrote: > Hello mailto:golang-dev@googlegroups.com (cc: mailto:golang-dev@googlegroups.com), > > I'd like you to review this change to > https://go.googlecode.com/hg/ benchmark data for linux/arm,arm5 as requested benchmark old ns/op new ns/op delta BenchmarkDecodeDigits 87784895 66076907 -24.73% BenchmarkDecodeTwain 285657537 235926956 -17.41% benchmark old MB/s new MB/s speedup BenchmarkDecodeDigits 0.49 0.65 1.33x BenchmarkDecodeTwain 0.44 0.53 1.20x
Sign in to reply to this message.
Interesting results in linux/386 (Intel Core Duo T2300 1.66GHz) benchmark old ns/op new ns/op delta BenchmarkDecodeDigits 31957617 22306478 -30.20% BenchmarkDecodeTwain 93685544 66296263 -29.24% benchmark old MB/s new MB/s speedup BenchmarkDecodeDigits 1.35 1.93 1.43x BenchmarkDecodeTwain 1.33 1.88 1.41x
Sign in to reply to this message.
Why are the testdata/*.bz2 files changing? On Fri, May 31, 2013 at 1:11 PM, <remyoudompheng@gmail.com> wrote: > Reviewers: golang-dev1, > > Message: > Hello golang-dev@googlegroups.com (cc: golang-dev@googlegroups.com), > > I'd like you to review this change to > https://go.googlecode.com/hg/ > > > Description: > compress/bzip2: faster decoding. > > benchmark old ns/op new ns/op delta > BenchmarkDecodeDigits 19451173 14347829 -26.24% > BenchmarkDecodeTwain 57516800 42619978 -25.90% > > benchmark old MB/s new MB/s speedup > BenchmarkDecodeDigits 2.22 3.01 1.36x > BenchmarkDecodeTwain 2.17 2.93 1.35x > > Please review this at https://codereview.appspot.**com/9915043/<https://codereview.appspot.com/9915... > > Affected files: > M src/pkg/compress/bzip2/bit_**reader.go > M src/pkg/compress/bzip2/bzip2_**test.go > M src/pkg/compress/bzip2/**huffman.go > M src/pkg/compress/bzip2/move_**to_front.go > A src/pkg/compress/bzip2/**testdata/Mark.Twain-Tom.**Sawyer.txt.bz2 > A src/pkg/compress/bzip2/**testdata/e.txt.bz2 > > > Index: src/pkg/compress/bzip2/bit_**reader.go > ==============================**==============================**======= > --- a/src/pkg/compress/bzip2/bit_**reader.go > +++ b/src/pkg/compress/bzip2/bit_**reader.go > @@ -77,6 +77,14 @@ > return n != 0 > } > > +func (br *bitReader) TryReadBit() (bit byte, ok bool) { > + if br.bits > 0 { > + br.bits-- > + return byte(br.n>>br.bits) & 1, true > + } > + return 0, false > +} > + > func (br *bitReader) Err() error { > return br.err > } > Index: src/pkg/compress/bzip2/bzip2_**test.go > ==============================**==============================**======= > --- a/src/pkg/compress/bzip2/**bzip2_test.go > +++ b/src/pkg/compress/bzip2/**bzip2_test.go > @@ -155,3 +155,32 @@ > > const rand3BZ2Hex = "**425a68393141592653593be669d000** > 00327fffffffffffffffffffffffff**fffffffffff7ffffffffffffffffff** > ffffffffffffc002b3b2b1b6e2bae4**00004c00132300004c0d268c004c08** > c0130026001a008683234c0684c340**08c230261a04c0260064d07a8d0003** > 4000d27a1268c9931a8d327a3427a4**1faa69ea0da264c1a34219326869b5** > 1b49a6469a3268c689fa53269a6279**4687a9a68f5189994c9e487a8f534f** > d49a3d34043629e8c93d04da4f4648**d30d4f44d3234c4d3023d084068098** > 4d309934c234d3131a000640984f53**6a6132601300130130c8d00d04d184** > 1ea7a8d31a02609b40023460010c01**a34d4c1a0d04d3069306810034d0d0** > d4c0046130d034d0131a9a64d32180**4c68003400098344c13000991808c0** > 001a00000000098004d3d4da4604c4**7a13012140aadf8d673c922c607ef6** > 212a8c0403adea4b28aee578900e65**3b9cdeb8d11e6b838815f3ebaad5a0** > 1c5408d84a332170aff8734d4e0661**2d3c2889f31925fb89e33561f5100a** > e89b1f7047102e729373d3667e58d7**3aaa80fa7be368a1cc2dadd81d81ec** > 8e1b504bd772ca31d03649269b01ce**ddaca07bf3d4eba24de141be3f86f9** > 3601e03714c0f64654671684f9f952**8626fd4e1b76753dc0c54b842486b8** > d59d8ab314e86ca818e7a1f079463c**bbd70d9b79b283c7edc41940631102** > 2e4be98c2c1374df9cdde2d008ce1d**00e5f06ad1024baf555631f70831fc** > 1023034e62be7c4bcb648caf276963**ffa20e96bb50377fe1c113da0db462** > 5b50741c35a058edb009c6ee5dbf93**b8a6b060eec568180e8db791b82aab** > 96cbf4326ca98361461379425ba8dc**c347be670bdba7641883e5526ae3d8** > 33f6e9cb9bac9557747c79e2061510**72f7f0071dff3880411846f66bf407** > 5c7462f302b53cb3400a74cf35652a**d5641ed33572fd54e7ed7f85f58a0a** > cba89327e7c6be5c58cb71528b99df**2431f1d0358f8d28d81d95292da631** > fb06701decabb205fac59ff0fb1df5**36afc681eece6ea658c4d9eaa45f13** > 42aa1ff70bdaff2ddaf25ec88c22f1**2829a0553db1ec2505554cb17d7b28** > 2e213a5a2aa30431ded2bce665bb19**9d023840832fedb2c0c350a2729140** > 7ff77440792872137df281592e8207**6a05c64c345ffb058c64f7f7c207ef** > 78420b7010520610f17e302cc4dfcf**aef72a0ed091aab4b541eb0531bbe9** > 41ca2f792bf7b31ca6162882b68054**a8470115bc2c19f2df2023f7800432** > b39b04d3a304e8085ba3f1f0ca5b1b**a4d38d339e6084de979cdea6d0e244** > c6c9fa0366bd890621e3d30846f5e8**497e21597b8f29bbf52c961a485dfb** > ea647600da0fc1f25ce4d203a8352e**ce310c39073525044e7ac46acf2ed9** > 120bae1b4f6f02364abfe343f80b29**0983160c103557af1c68416480d024** > cc31b6c06cfec011456f1e95c420a1**2b48b1c3fe220c2879a982fb099948** > ac440db844b9a112a5188c7783fd3b**19593290785f908d95c9db4b280baf** > e89c1313aeec24772046d9bc089645**f0d182a21184e143823c5f52de50e5** > d7e98d3d7ab56f5413bbccd1415c9b**cff707def475b643fb7f2984258210** > 4d4cc1dbaaca8f10a2f44273c339e0**984f2b1e06ab2f0771db01fafa8142** > 298345f3196f23e5847bda024034b6**f59b11c29e981c881456e40d211929** > fd4f766200258aad8212016322bd5c**605790dcfdf1bd2a93d99c9b8f4987** > 22d311d7eae7ff420496a31804c55f**4759a7b13aaaf5f7ce006c3a8a9988** > 97d5e0a504398c2b627852545baf44**0798bcc5cc049357cf3f17d9771e45** > 28a1af3d77dc794a11346e1bdf5efe**37a405b127b4c43b616d61fbc5dc91** > 4e14240ef99a7400" > const rand3Hex = "**1744b384d68c042371244e13500d4b** > fb98c6244e3d71a5b700224420b59c**593553f33bd786e3d0ce31626f511b** > c985f59d1a88aa38ba8ad6218d306a**bee60dd9172540232b95be1af146c6** > 9e72e5fde667a090dc3f93bdc5c5af**0ab80acdbaa7a505f628c59dc0247b** > 31a439cacf5010a94376d71521df08**c178b02fb96fdb1809144ea38c6853** > 6187c53201fea8631fb0a880b4451c**cdca7cc61f6aafca21cc7449d92059** > 9db61789ac3b1e164b3390124f9502**2aeea39ccca3ec1053f4fa10de2978** > e2861ea58e477085c2220021a0927a**a94c5d0006b5055abba340e4f9eba2** > 2e969978dfd18e278a8b89d877328a**e34268bc0174cfe211954c0036f078** > 025217d1269fac1932a03b05a0b616**012271bbe1fb554171c7a59b196d8a** > 4479f45a77931b5d97aaf6c0c673cb**e597b79b96e2a0c1eae2e66e46ccc8** > c85798e23ffe972ebdaa3f6caea243**c004e60321eb47cd79137d78fd0613** > be606feacc5b3637bdc96a89c13746**db8cad886f3ccf912b2178c823bcac** > 395f06d28080269bdca2debf3419c6**6c690fd1adcfbd53e32e79443d7a42** > 511a84cb22ca94fffad9149275a075**b2f8ae0b021dcde9bf62b102db9207** > 33b897560518b06e1ad7f4b0345849**3ddaa7f4fa2c1609f7a1735aeeb1b3** > e2cea3ab45fc376323cc91873b7e9c**90d07c192e38d3f5dfc9bfab1fd821** > c854da9e607ea596c391c7ec4161c6**c4493929a8176badaa5a5af7211c62** > 3f29643a937677d3df0da9266181b7**c4da5dd40376db677fe8f4a1dc456a** > df6f33c1e37cec471dd318c2647644**fe52f93707a77da7d1702380a80e14** > cc0fdce7bf2eed48a529090bae0388**ee277ce6c7018c5fb00b8836255436** > 2205c641f0d0fab94fd5b8357b5ff0**8b207fee023709bc126ec90cfb17c0** > 06754638f8186aaeb1265e80be0c11**89ec07d01d5f6f96cb9ce82744147d** > 18490de7dc72862f42f024a1696889**1a356f5e7e0e695d8c933ba5b5e43a** > d4c4ade5399bc2cae9bb6189b7870d**7f22956194d277f28b10e01c10c6ff** > e3e065f7e2d6d056aa790db5649ca8**4dc64c35566c0af1b68c32b5b7874a** > aa66467afa44f40e9a0846a07ae753**60a641dd2acc69d93219b2891f1906** > 21511e62a27f5e4fbe641ece1fa234**fc7e9a74f48d2a760d82160d9540f6** > 49256b169d1fed6fbefdc491126530**f3cbad7913e19fbd7aa53b1e243fbf** > 28d5f38c10ebd77c8b986775975cc1**d619efb27cdcd733fa1ca36cffe9c0** > a33cc9f02463c91a886601fd349efe**e85ef1462065ef9bd2c8f533220ad9** > 3138b8382d5938103ab25b2d9af8ae**106e1211eb9b18793fba033900c809** > c02cd6d17e2f3e6fc84dae873411f8**e87c3f0a8f1765b7825d185ce3730f** > 299c3028d4a62da9ee95c2b870fb70**c79370d485f9d5d9acb78926d20444** > 033d960524d2776dc31988ec7c0dbf**23b9905d" > + > +const ( > + digits = iota > + twain > +) > + > +var testfiles = []string{ > + // Digits is the digits of the irrational number e. Its decimal > representation > + // does not repeat, but there are only 10 posible digits, so it > should be > + // reasonably compressible. > + digits: "testdata/e.txt.bz2", > + // Twain is Project Gutenberg's edition of Mark Twain's classic > English novel. > + twain: "testdata/Mark.Twain-Tom.**Sawyer.txt.bz2", > +} > + > +func benchmarkDecode(b *testing.B, testfile int) { > + compressed, err := ioutil.ReadFile(testfiles[**testfile]) > + if err != nil { > + b.Fatal(err) > + } > + b.SetBytes(int64(len(**compressed))) > + for i := 0; i < b.N; i++ { > + r := bytes.NewBuffer(compressed) > + io.Copy(ioutil.Discard, NewReader(r)) > + } > +} > + > +func BenchmarkDecodeDigits(b *testing.B) { benchmarkDecode(b, digits) } > +func BenchmarkDecodeTwain(b *testing.B) { benchmarkDecode(b, twain) } > Index: src/pkg/compress/bzip2/**huffman.go > ==============================**==============================**======= > --- a/src/pkg/compress/bzip2/**huffman.go > +++ b/src/pkg/compress/bzip2/**huffman.go > @@ -33,14 +33,17 @@ > > // Decode reads bits from the given bitReader and navigates the tree > until a > // symbol is found. > -func (t huffmanTree) Decode(br *bitReader) (v uint16) { > +func (t *huffmanTree) Decode(br *bitReader) (v uint16) { > nodeIndex := uint16(0) // node 0 is the root of the tree. > > for { > node := &t.nodes[nodeIndex] > - bit := br.ReadBit() > + bit, ok := br.TryReadBit() > + if !ok && br.ReadBit() { > + bit = 1 > + } > // bzip2 encodes left as a true bit. > - if bit { > + if bit != 0 { > // left > if node.left == invalidNodeValue { > return node.leftValue > Index: src/pkg/compress/bzip2/move_**to_front.go > ==============================**==============================**======= > --- a/src/pkg/compress/bzip2/move_**to_front.go > +++ b/src/pkg/compress/bzip2/move_**to_front.go > @@ -15,10 +15,11 @@ > // Rather than actually keep the list in memory, the symbols are > stored > // as a circular, double linked list with the symbol indexed by > head > // at the front of the list. > - symbols []byte > - next []uint8 > - prev []uint8 > + symbols [256]byte > + next [256]uint8 > + prev [256]uint8 > head uint8 > + len int > } > > // newMTFDecoder creates a move-to-front decoder with an explicit initial > list > @@ -28,12 +29,9 @@ > panic("too many symbols") > } > > - m := &moveToFrontDecoder{ > - symbols: symbols, > - next: make([]uint8, len(symbols)), > - prev: make([]uint8, len(symbols)), > - } > - > + m := new(moveToFrontDecoder) > + copy(m.symbols[:], symbols) > + m.len = len(symbols) > m.threadLinkedList() > return m > } > @@ -45,34 +43,29 @@ > panic("newMTFDecoderWithRange: cannot have > 256 symbols") > } > > - m := &moveToFrontDecoder{ > - symbols: make([]uint8, n), > - next: make([]uint8, n), > - prev: make([]uint8, n), > + m := new(moveToFrontDecoder) > + for i := 0; i < n; i++ { > + m.symbols[byte(i)] = byte(i) > } > - > - for i := 0; i < n; i++ { > - m.symbols[i] = byte(i) > - } > - > + m.len = n > m.threadLinkedList() > return m > } > > // threadLinkedList creates the initial linked-list pointers. > func (m *moveToFrontDecoder) threadLinkedList() { > - if len(m.symbols) == 0 { > + if m.len == 0 { > return > } > > - m.prev[0] = uint8(len(m.symbols) - 1) > + m.prev[0] = uint8(m.len - 1) > > - for i := 0; i < len(m.symbols)-1; i++ { > + for i := byte(0); int(i) < m.len-1; i++ { > m.next[i] = uint8(i + 1) > m.prev[i+1] = uint8(i) > } > > - m.next[len(m.symbols)-1] = 0 > + m.next[m.len-1] = 0 > } > > func (m *moveToFrontDecoder) Decode(n int) (b byte) { > Index: src/pkg/compress/bzip2/**testdata/Mark.Twain-Tom.**Sawyer.txt.bz2 > ==============================**==============================**======= > new file mode 100644 > index 000000000000000000000000000000**0000000000..** > 0bd61a6d4e369a68f7e1cbf2943526**814fde53a8 > GIT binary patch > literal 124744 > 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প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
Sign in to reply to this message.
On 2013/6/3 Brad Fitzpatrick <bradfitz@golang.org> wrote: > Why are the testdata/*.bz2 files changing? They didn't exist before, the benchmarks are new. Since there is no compressor, we can't use the uncompressed files and the sample compressed data used for tests is really too small.
Sign in to reply to this message.
https://codereview.appspot.com/9915043/diff/5001/src/pkg/compress/bzip2/bzip2... File src/pkg/compress/bzip2/bzip2_test.go (right): https://codereview.appspot.com/9915043/diff/5001/src/pkg/compress/bzip2/bzip2... src/pkg/compress/bzip2/bzip2_test.go:185: func BenchmarkDecodeDigits(b *testing.B) { benchmarkDecode(b, digits) } It seems that this could be simpler if it just passed in the filename rather than using iota and a []string. https://codereview.appspot.com/9915043/diff/5001/src/pkg/compress/bzip2/huffm... File src/pkg/compress/bzip2/huffman.go (right): https://codereview.appspot.com/9915043/diff/5001/src/pkg/compress/bzip2/huffm... src/pkg/compress/bzip2/huffman.go:41: bit, ok := br.TryReadBit() It looks like TryReadBit can be folded into ReadBit.
Sign in to reply to this message.
https://codereview.appspot.com/9915043/diff/5001/src/pkg/compress/bzip2/bzip2... File src/pkg/compress/bzip2/bzip2_test.go (right): https://codereview.appspot.com/9915043/diff/5001/src/pkg/compress/bzip2/bzip2... src/pkg/compress/bzip2/bzip2_test.go:185: func BenchmarkDecodeDigits(b *testing.B) { benchmarkDecode(b, digits) } On 2013/06/03 17:49:37, agl1 wrote: > It seems that this could be simpler if it just passed in the filename rather > than using iota and a []string. I have been imitating compress/flate. I agree that string constants would look better. https://codereview.appspot.com/9915043/diff/5001/src/pkg/compress/bzip2/huffm... File src/pkg/compress/bzip2/huffman.go (right): https://codereview.appspot.com/9915043/diff/5001/src/pkg/compress/bzip2/huffm... src/pkg/compress/bzip2/huffman.go:41: bit, ok := br.TryReadBit() On 2013/06/03 17:49:37, agl1 wrote: > It looks like TryReadBit can be folded into ReadBit. Yes, it's the case in the original code. However, TryReadBit only does the common case and it is a leaf function, so it is inlined by the compiler. Do you prefer that the code be inlined manually for more clarity?
Sign in to reply to this message.
LGTM. https://codereview.appspot.com/9915043/diff/5001/src/pkg/compress/bzip2/huffm... File src/pkg/compress/bzip2/huffman.go (right): https://codereview.appspot.com/9915043/diff/5001/src/pkg/compress/bzip2/huffm... src/pkg/compress/bzip2/huffman.go:41: bit, ok := br.TryReadBit() On 2013/06/03 17:53:45, remyoudompheng wrote: > Do you prefer that the code be inlined manually for more clarity? Ah, I see. No, that's fine then.
Sign in to reply to this message.
*** Submitted as https://code.google.com/p/go/source/detail?r=cf3ee583c568 *** compress/bzip2: faster decoding. benchmark old ns/op new ns/op delta BenchmarkDecodeDigits 19451173 14347829 -26.24% BenchmarkDecodeTwain 57516800 42619978 -25.90% benchmark old MB/s new MB/s speedup BenchmarkDecodeDigits 2.22 3.01 1.36x BenchmarkDecodeTwain 2.17 2.93 1.35x R=golang-dev, dave, bradfitz, agl CC=golang-dev https://codereview.appspot.com/9915043
Sign in to reply to this message.
|