github.com/cellofellow/gopkg@v0.0.0-20140722061823-eec0544a62ad/image/raw/bench_test.go (about)

     1  // Copyright 2014 <chaishushan{AT}gmail.com>. All rights reserved.
     2  // Use of this source code is governed by a BSD-style
     3  // license that can be found in the LICENSE file.
     4  
     5  package raw
     6  
     7  import (
     8  	"image"
     9  	"reflect"
    10  	"testing"
    11  )
    12  
    13  func BenchmarkEncode_gray_buffer(b *testing.B) {
    14  	m := image.NewGray(image.Rect(0, 0, 256, 256))
    15  	encoder := Encoder{1, reflect.Uint8}
    16  	dataBuf := make([]byte, 1<<20)
    17  	b.ResetTimer()
    18  	for i := 0; i < b.N; i++ {
    19  		encoder.Encode(m, dataBuf)
    20  	}
    21  }
    22  
    23  func BenchmarkEncode_gray_no_buffer(b *testing.B) {
    24  	m := image.NewGray(image.Rect(0, 0, 256, 256))
    25  	encoder := Encoder{1, reflect.Uint8}
    26  	b.ResetTimer()
    27  	for i := 0; i < b.N; i++ {
    28  		encoder.Encode(m, nil)
    29  	}
    30  }
    31  
    32  func BenchmarkDecode_gray_buffer(b *testing.B) {
    33  	m := image.NewGray(image.Rect(0, 0, 256, 256))
    34  	encoder := Encoder{1, reflect.Uint8}
    35  	decoder := Decoder{1, reflect.Uint8, m.Bounds().Dx(), m.Bounds().Dy()}
    36  	data, _ := encoder.Encode(m, nil)
    37  	imgBuf := image.NewGray(image.Rect(0, 0, 512, 512))
    38  	b.ResetTimer()
    39  	for i := 0; i < b.N; i++ {
    40  		decoder.Decode(data, imgBuf)
    41  	}
    42  }
    43  
    44  func BenchmarkDecode_gray_no_buffer(b *testing.B) {
    45  	m := image.NewGray(image.Rect(0, 0, 256, 256))
    46  	encoder := Encoder{1, reflect.Uint8}
    47  	decoder := Decoder{1, reflect.Uint8, m.Bounds().Dx(), m.Bounds().Dy()}
    48  	data, _ := encoder.Encode(m, nil)
    49  	b.ResetTimer()
    50  	for i := 0; i < b.N; i++ {
    51  		decoder.Decode(data, nil)
    52  	}
    53  }