9fans.net/go@v0.0.5/draw/bench_test.go (about)

     1  package draw
     2  
     3  // Benchmarks. Some run as regular tests.
     4  
     5  import (
     6  	"fmt"
     7  	"sync"
     8  	"testing"
     9  	"time"
    10  )
    11  
    12  var (
    13  	testOnce    sync.Once
    14  	testDisplay *Display
    15  )
    16  
    17  func testInit() {
    18  	var err error
    19  	testDisplay, err = Init(nil, "", "drawtest", "")
    20  	if err != nil {
    21  		panic(err)
    22  	}
    23  }
    24  
    25  const aHundredChars = "abcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxyabcdefghijklmnopqrstuvwxy"
    26  
    27  func TestBenchmarkString(t *testing.T) {
    28  	testOnce.Do(testInit)
    29  	im := testDisplay.Image
    30  	start := time.Now()
    31  	var nchars time.Duration
    32  	for i := 0; i < 1e4; i++ {
    33  		im.String(im.R.Min, testDisplay.Black, im.R.Min, testDisplay.Font, aHundredChars)
    34  		nchars += 100
    35  	}
    36  	testDisplay.Flush()
    37  	end := time.Now()
    38  	fmt.Println("time for one char:", end.Sub(start)/nchars)
    39  }