png: speed up opaque RGBA encoding
With Linux/8g on a 2006 Mac Mini (1.66 GHz Intel Core Duo, 2KB L1, 2MB L2, 2G main memory), GOMAXPROCS unset: start: png.BenchmarkEncodePaletted 50 44772820 ns/op png.BenchmarkEncodeRGBOpaque 10 208395900 ns/op png.BenchmarkEncodeRGBA 5 331088000 ns/op remove interface method calls: png.BenchmarkEncodePaletted 50 44722880 ns/op png.BenchmarkEncodeRGBOpaque 10 139042600 ns/op png.BenchmarkEncodeRGBA 5 334033600 ns/op flate inline min/max(): png.BenchmarkEncodePaletted 50 40631180 ns/op png.BenchmarkEncodeRGBOpaque 10 124894900 ns/op png.BenchmarkEncodeRGBA 5 312099000 ns/op after adler change: png.BenchmarkEncodePaletted 50 40181760 ns/op png.BenchmarkEncodeRGBOpaque 20 121781950 ns/op png.BenchmarkEncodeRGBA 5 313890800 ns/op In comparison to 121 ms on this 2006 machine, on my Core2 Duo 2.66 GHz laptop, the final BenchmarkEncodeRGBOpaque runs in 27 ms. (these are all for 640x480 images) R=nigeltao, rsc, r CC=golang-dev https://golang.org/cl/4432077
Showing
Please register or sign in to comment