diff options
| author | Artyom Pervukhin <artyom.pervukhin@gmail.com> | 2017-10-21 09:36:54 +0300 |
|---|---|---|
| committer | Nigel Tao <nigeltao@golang.org> | 2017-10-25 23:43:27 +0000 |
| commit | 088209bbe870725f82e44e604e787d7273488bd6 (patch) | |
| tree | 78c01c9b648a93e6d792a79083f271e1bbc820dc /src/plugin | |
| parent | f2d52519e1fad35566afb46ef521934cf0f5e5fd (diff) | |
| download | go-088209bbe870725f82e44e604e787d7273488bd6.tar.xz | |
image/draw: reduce drawPaletted allocations for special source cases
drawPaletted has to discover R,G,B,A color values of each source image
pixel in a given rectangle. Doing that by calling image.Image.At()
method returning color.Color interface is quite taxing allocation-wise
since interface values go through heap. Introduce special cases for some
concrete source types by fetching color values using type-specific
methods.
name old time/op new time/op delta
Paletted-4 7.62ms ± 4% 3.72ms ± 3% -51.20% (p=0.008 n=5+5)
name old alloc/op new alloc/op delta
Paletted-4 480kB ± 0% 0kB ± 0% -99.99% (p=0.000 n=4+5)
name old allocs/op new allocs/op delta
Paletted-4 120k ± 0% 0k ± 0% -100.00% (p=0.008 n=5+5)
Updates #15759.
Change-Id: I0ce1770ff600ac80599541aaad4c2c826855c8fb
Reviewed-on: https://go-review.googlesource.com/72370
Reviewed-by: Nigel Tao <nigeltao@golang.org>
Diffstat (limited to 'src/plugin')
0 files changed, 0 insertions, 0 deletions
