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 }