]> Cypherpunks repositories - gostls13.git/commit
[release-branch.r57] png: speed up opaque RGBA encoding
authorRuss Cox <rsc@golang.org>
Tue, 3 May 2011 05:40:19 +0000 (01:40 -0400)
committerRuss Cox <rsc@golang.org>
Tue, 3 May 2011 05:40:19 +0000 (01:40 -0400)
commit6a9e2c727917e10d2b4b6d71bb9d3f47043b6c32
treedb48e93f5ba7bbaa5806cb6b63e967f7c838825f
parent50e57603ab7b1346055316654bdf01b0565ee700
[release-branch.r57] png: speed up opaque RGBA encoding

««« CL 4432077 / 66eb68cbd5c2
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
»»»

TBR=adg
CC=golang-dev
https://golang.org/cl/4430076
src/pkg/compress/flate/deflate.go
src/pkg/image/png/writer.go