compress/lzw: don't use a closure in NewReader, which avoids having
to move some variables from the stack to the heap. Sorted benchmark runs on my 2007-era Mac Mini (GOARCH=amd64, GOOS=linux): Before: lzw.BenchmarkDecoder 2000 878176 ns/op lzw.BenchmarkDecoder 2000 878415 ns/op lzw.BenchmarkDecoder 2000 880352 ns/op lzw.BenchmarkDecoder 2000 898445 ns/op lzw.BenchmarkDecoder 2000 901728 ns/op After: lzw.BenchmarkDecoder 2000 859065 ns/op lzw.BenchmarkDecoder 2000 859402 ns/op lzw.BenchmarkDecoder 2000 860035 ns/op lzw.BenchmarkDecoder 2000 860555 ns/op lzw.BenchmarkDecoder 2000 861109 ns/op The ratio of before/after median times is 1.024. The runtime.MemStats.Mallocs delta per loop drops from 109 to 104. R=r, r2, dfc CC=golang-dev https://golang.org/cl/4253043
Showing
Please register or sign in to comment