github.com/cellofellow/gopkg@v0.0.0-20140722061823-eec0544a62ad/image/draw/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 draw
     6  
     7  import (
     8  	"image"
     9  	"testing"
    10  )
    11  
    12  // ----------------------------------------------------------------------------
    13  // DrawPyrDownGray_Average: 5x5
    14  // ----------------------------------------------------------------------------
    15  
    16  func BenchmarkDrawPyrDown_Average_gray_5x5(b *testing.B) {
    17  	var (
    18  		dst = image.NewGray(image.Rect(0, 0, 10, 10))
    19  		src = image.NewGray(image.Rect(0, 0, 10, 10))
    20  		r   = image.Rect(0, 0, 5, 5)
    21  		sp  = image.Pt(0, 0)
    22  	)
    23  	b.ResetTimer()
    24  	for i := 0; i < b.N; i++ {
    25  		drawPyrDown_Average(dst, r, src, sp)
    26  	}
    27  }
    28  
    29  func BenchmarkDrawPyrDownGray_Average_slow_5x5(b *testing.B) {
    30  	var (
    31  		dst = image.NewGray(image.Rect(0, 0, 10, 10))
    32  		src = image.NewGray(image.Rect(0, 0, 10, 10))
    33  		r   = image.Rect(0, 0, 5, 5)
    34  		sp  = image.Pt(0, 0)
    35  	)
    36  	b.ResetTimer()
    37  	for i := 0; i < b.N; i++ {
    38  		drawPyrDownGray_Average_slow(dst, r, src, sp)
    39  	}
    40  }
    41  
    42  func BenchmarkDrawPyrDownGray_Average_fast_5x5(b *testing.B) {
    43  	var (
    44  		dst = image.NewGray(image.Rect(0, 0, 10, 10))
    45  		src = image.NewGray(image.Rect(0, 0, 10, 10))
    46  		r   = image.Rect(0, 0, 5, 5)
    47  		sp  = image.Pt(0, 0)
    48  	)
    49  	b.ResetTimer()
    50  	for i := 0; i < b.N; i++ {
    51  		drawPyrDownGray_Average_fast(dst, r, src, sp)
    52  	}
    53  }
    54  
    55  // ----------------------------------------------------------------------------
    56  // DrawPyrDownGray_Average: 16x16
    57  // ----------------------------------------------------------------------------
    58  
    59  func BenchmarkDrawPyrDown_Average_gray_16x16(b *testing.B) {
    60  	var (
    61  		dst = image.NewGray(image.Rect(0, 0, 32, 32))
    62  		src = image.NewGray(image.Rect(0, 0, 32, 32))
    63  		r   = image.Rect(0, 0, 16, 16)
    64  		sp  = image.Pt(0, 0)
    65  	)
    66  	b.ResetTimer()
    67  	for i := 0; i < b.N; i++ {
    68  		drawPyrDown_Average(dst, r, src, sp)
    69  	}
    70  }
    71  
    72  func BenchmarkDrawPyrDownGray_Average_slow_16x16(b *testing.B) {
    73  	var (
    74  		dst = image.NewGray(image.Rect(0, 0, 32, 32))
    75  		src = image.NewGray(image.Rect(0, 0, 32, 32))
    76  		r   = image.Rect(0, 0, 16, 16)
    77  		sp  = image.Pt(0, 0)
    78  	)
    79  	b.ResetTimer()
    80  	for i := 0; i < b.N; i++ {
    81  		drawPyrDownGray_Average_slow(dst, r, src, sp)
    82  	}
    83  }
    84  
    85  func BenchmarkDrawPyrDownGray_Average_fast_16x16(b *testing.B) {
    86  	var (
    87  		dst = image.NewGray(image.Rect(0, 0, 32, 32))
    88  		src = image.NewGray(image.Rect(0, 0, 32, 32))
    89  		r   = image.Rect(0, 0, 16, 16)
    90  		sp  = image.Pt(0, 0)
    91  	)
    92  	b.ResetTimer()
    93  	for i := 0; i < b.N; i++ {
    94  		drawPyrDownGray_Average_fast(dst, r, src, sp)
    95  	}
    96  }
    97  
    98  // ----------------------------------------------------------------------------
    99  // DrawPyrDownGray_Average: 32x32
   100  // ----------------------------------------------------------------------------
   101  
   102  func BenchmarkDrawPyrDown_Average_gray_32x32(b *testing.B) {
   103  	var (
   104  		dst = image.NewGray(image.Rect(0, 0, 64, 64))
   105  		src = image.NewGray(image.Rect(0, 0, 64, 64))
   106  		r   = image.Rect(0, 0, 32, 32)
   107  		sp  = image.Pt(0, 0)
   108  	)
   109  	b.ResetTimer()
   110  	for i := 0; i < b.N; i++ {
   111  		drawPyrDown_Average(dst, r, src, sp)
   112  	}
   113  }
   114  
   115  func BenchmarkDrawPyrDownGray_Average_slow_32x32(b *testing.B) {
   116  	var (
   117  		dst = image.NewGray(image.Rect(0, 0, 64, 64))
   118  		src = image.NewGray(image.Rect(0, 0, 64, 64))
   119  		r   = image.Rect(0, 0, 32, 32)
   120  		sp  = image.Pt(0, 0)
   121  	)
   122  	b.ResetTimer()
   123  	for i := 0; i < b.N; i++ {
   124  		drawPyrDownGray_Average_slow(dst, r, src, sp)
   125  	}
   126  }
   127  
   128  func BenchmarkDrawPyrDownGray_Average_fast_32x32(b *testing.B) {
   129  	var (
   130  		dst = image.NewGray(image.Rect(0, 0, 64, 64))
   131  		src = image.NewGray(image.Rect(0, 0, 64, 64))
   132  		r   = image.Rect(0, 0, 32, 32)
   133  		sp  = image.Pt(0, 0)
   134  	)
   135  	b.ResetTimer()
   136  	for i := 0; i < b.N; i++ {
   137  		drawPyrDownGray_Average_fast(dst, r, src, sp)
   138  	}
   139  }
   140  
   141  // ----------------------------------------------------------------------------
   142  // DrawPyrDownGray_Average: 64x64
   143  // ----------------------------------------------------------------------------
   144  
   145  func BenchmarkDrawPyrDown_Average_gray_64x64(b *testing.B) {
   146  	var (
   147  		dst = image.NewGray(image.Rect(0, 0, 128, 128))
   148  		src = image.NewGray(image.Rect(0, 0, 128, 128))
   149  		r   = image.Rect(0, 0, 64, 64)
   150  		sp  = image.Pt(0, 0)
   151  	)
   152  	b.ResetTimer()
   153  	for i := 0; i < b.N; i++ {
   154  		drawPyrDown_Average(dst, r, src, sp)
   155  	}
   156  }
   157  
   158  func BenchmarkDrawPyrDownGray_Average_slow_64x64(b *testing.B) {
   159  	var (
   160  		dst = image.NewGray(image.Rect(0, 0, 128, 128))
   161  		src = image.NewGray(image.Rect(0, 0, 128, 128))
   162  		r   = image.Rect(0, 0, 64, 64)
   163  		sp  = image.Pt(0, 0)
   164  	)
   165  	b.ResetTimer()
   166  	for i := 0; i < b.N; i++ {
   167  		drawPyrDownGray_Average_slow(dst, r, src, sp)
   168  	}
   169  }
   170  
   171  func BenchmarkDrawPyrDownGray_Average_fast_64x64(b *testing.B) {
   172  	var (
   173  		dst = image.NewGray(image.Rect(0, 0, 128, 128))
   174  		src = image.NewGray(image.Rect(0, 0, 128, 128))
   175  		r   = image.Rect(0, 0, 64, 64)
   176  		sp  = image.Pt(0, 0)
   177  	)
   178  	b.ResetTimer()
   179  	for i := 0; i < b.N; i++ {
   180  		drawPyrDownGray_Average_fast(dst, r, src, sp)
   181  	}
   182  }
   183  
   184  // ----------------------------------------------------------------------------
   185  // DrawPyrDownGray_Average: 128x128
   186  // ----------------------------------------------------------------------------
   187  
   188  func BenchmarkDrawPyrDown_Average_gray_128x128(b *testing.B) {
   189  	var (
   190  		dst = image.NewGray(image.Rect(0, 0, 256, 256))
   191  		src = image.NewGray(image.Rect(0, 0, 256, 256))
   192  		r   = image.Rect(0, 0, 128, 128)
   193  		sp  = image.Pt(0, 0)
   194  	)
   195  	b.ResetTimer()
   196  	for i := 0; i < b.N; i++ {
   197  		drawPyrDown_Average(dst, r, src, sp)
   198  	}
   199  }
   200  
   201  func BenchmarkDrawPyrDownGray_Average_slow_128x128(b *testing.B) {
   202  	var (
   203  		dst = image.NewGray(image.Rect(0, 0, 128, 128))
   204  		src = image.NewGray(image.Rect(0, 0, 128, 128))
   205  		r   = image.Rect(0, 0, 64, 64)
   206  		sp  = image.Pt(0, 0)
   207  	)
   208  	b.ResetTimer()
   209  	for i := 0; i < b.N; i++ {
   210  		drawPyrDownGray_Average_slow(dst, r, src, sp)
   211  	}
   212  }
   213  
   214  func BenchmarkDrawPyrDownGray_Average_fast_128x128(b *testing.B) {
   215  	var (
   216  		dst = image.NewGray(image.Rect(0, 0, 128, 128))
   217  		src = image.NewGray(image.Rect(0, 0, 128, 128))
   218  		r   = image.Rect(0, 0, 64, 64)
   219  		sp  = image.Pt(0, 0)
   220  	)
   221  	b.ResetTimer()
   222  	for i := 0; i < b.N; i++ {
   223  		drawPyrDownGray_Average_fast(dst, r, src, sp)
   224  	}
   225  }
   226  
   227  // ----------------------------------------------------------------------------
   228  // DrawPyrDownRGBA_Average: 5x5
   229  // ----------------------------------------------------------------------------
   230  
   231  func BenchmarkDrawPyrDown_Average_rgba_5x5(b *testing.B) {
   232  	var (
   233  		dst = image.NewRGBA(image.Rect(0, 0, 10, 10))
   234  		src = image.NewRGBA(image.Rect(0, 0, 10, 10))
   235  		r   = image.Rect(0, 0, 5, 5)
   236  		sp  = image.Pt(0, 0)
   237  	)
   238  	b.ResetTimer()
   239  	for i := 0; i < b.N; i++ {
   240  		drawPyrDown_Average(dst, r, src, sp)
   241  	}
   242  }
   243  
   244  func BenchmarkDrawPyrDownRGBA_Average_slow_5x5(b *testing.B) {
   245  	var (
   246  		dst = image.NewRGBA(image.Rect(0, 0, 10, 10))
   247  		src = image.NewRGBA(image.Rect(0, 0, 10, 10))
   248  		r   = image.Rect(0, 0, 5, 5)
   249  		sp  = image.Pt(0, 0)
   250  	)
   251  	b.ResetTimer()
   252  	for i := 0; i < b.N; i++ {
   253  		drawPyrDownRGBA_Average_slow(dst, r, src, sp)
   254  	}
   255  }
   256  
   257  func BenchmarkDrawPyrDownRGBA_Average_fast_5x5(b *testing.B) {
   258  	var (
   259  		dst = image.NewRGBA(image.Rect(0, 0, 10, 10))
   260  		src = image.NewRGBA(image.Rect(0, 0, 10, 10))
   261  		r   = image.Rect(0, 0, 5, 5)
   262  		sp  = image.Pt(0, 0)
   263  	)
   264  	b.ResetTimer()
   265  	for i := 0; i < b.N; i++ {
   266  		drawPyrDownRGBA_Average_fast(dst, r, src, sp)
   267  	}
   268  }
   269  
   270  // ----------------------------------------------------------------------------
   271  // DrawPyrDownRGBA_Average: 16x16
   272  // ----------------------------------------------------------------------------
   273  
   274  func BenchmarkDrawPyrDown_Average_rgba_16x16(b *testing.B) {
   275  	var (
   276  		dst = image.NewRGBA(image.Rect(0, 0, 32, 32))
   277  		src = image.NewRGBA(image.Rect(0, 0, 32, 32))
   278  		r   = image.Rect(0, 0, 16, 16)
   279  		sp  = image.Pt(0, 0)
   280  	)
   281  	b.ResetTimer()
   282  	for i := 0; i < b.N; i++ {
   283  		drawPyrDown_Average(dst, r, src, sp)
   284  	}
   285  }
   286  
   287  func BenchmarkDrawPyrDownRGBA_Average_slow_16x16(b *testing.B) {
   288  	var (
   289  		dst = image.NewRGBA(image.Rect(0, 0, 32, 32))
   290  		src = image.NewRGBA(image.Rect(0, 0, 32, 32))
   291  		r   = image.Rect(0, 0, 16, 16)
   292  		sp  = image.Pt(0, 0)
   293  	)
   294  	b.ResetTimer()
   295  	for i := 0; i < b.N; i++ {
   296  		drawPyrDownRGBA_Average_slow(dst, r, src, sp)
   297  	}
   298  }
   299  
   300  func BenchmarkDrawPyrDownRGBA_Average_fast_16x16(b *testing.B) {
   301  	var (
   302  		dst = image.NewRGBA(image.Rect(0, 0, 32, 32))
   303  		src = image.NewRGBA(image.Rect(0, 0, 32, 32))
   304  		r   = image.Rect(0, 0, 16, 16)
   305  		sp  = image.Pt(0, 0)
   306  	)
   307  	b.ResetTimer()
   308  	for i := 0; i < b.N; i++ {
   309  		drawPyrDownRGBA_Average_fast(dst, r, src, sp)
   310  	}
   311  }
   312  
   313  // ----------------------------------------------------------------------------
   314  // DrawPyrDownRGBA_Average: 32x32
   315  // ----------------------------------------------------------------------------
   316  
   317  func BenchmarkDrawPyrDown_Average_rgba_32x32(b *testing.B) {
   318  	var (
   319  		dst = image.NewRGBA(image.Rect(0, 0, 64, 64))
   320  		src = image.NewRGBA(image.Rect(0, 0, 64, 64))
   321  		r   = image.Rect(0, 0, 32, 32)
   322  		sp  = image.Pt(0, 0)
   323  	)
   324  	b.ResetTimer()
   325  	for i := 0; i < b.N; i++ {
   326  		drawPyrDown_Average(dst, r, src, sp)
   327  	}
   328  }
   329  
   330  func BenchmarkDrawPyrDownRGBA_Average_slow_32x32(b *testing.B) {
   331  	var (
   332  		dst = image.NewRGBA(image.Rect(0, 0, 64, 64))
   333  		src = image.NewRGBA(image.Rect(0, 0, 64, 64))
   334  		r   = image.Rect(0, 0, 32, 32)
   335  		sp  = image.Pt(0, 0)
   336  	)
   337  	b.ResetTimer()
   338  	for i := 0; i < b.N; i++ {
   339  		drawPyrDownRGBA_Average_slow(dst, r, src, sp)
   340  	}
   341  }
   342  
   343  func BenchmarkDrawPyrDownRGBA_Average_fast_32x32(b *testing.B) {
   344  	var (
   345  		dst = image.NewRGBA(image.Rect(0, 0, 64, 64))
   346  		src = image.NewRGBA(image.Rect(0, 0, 64, 64))
   347  		r   = image.Rect(0, 0, 32, 32)
   348  		sp  = image.Pt(0, 0)
   349  	)
   350  	b.ResetTimer()
   351  	for i := 0; i < b.N; i++ {
   352  		drawPyrDownRGBA_Average_fast(dst, r, src, sp)
   353  	}
   354  }
   355  
   356  // ----------------------------------------------------------------------------
   357  // DrawPyrDownRGBA_Average: 64x64
   358  // ----------------------------------------------------------------------------
   359  
   360  func BenchmarkDrawPyrDown_Average_rgba_64x64(b *testing.B) {
   361  	var (
   362  		dst = image.NewRGBA(image.Rect(0, 0, 128, 128))
   363  		src = image.NewRGBA(image.Rect(0, 0, 128, 128))
   364  		r   = image.Rect(0, 0, 64, 64)
   365  		sp  = image.Pt(0, 0)
   366  	)
   367  	b.ResetTimer()
   368  	for i := 0; i < b.N; i++ {
   369  		drawPyrDown_Average(dst, r, src, sp)
   370  	}
   371  }
   372  
   373  func BenchmarkDrawPyrDownRGBA_Average_slow_64x64(b *testing.B) {
   374  	var (
   375  		dst = image.NewRGBA(image.Rect(0, 0, 128, 128))
   376  		src = image.NewRGBA(image.Rect(0, 0, 128, 128))
   377  		r   = image.Rect(0, 0, 64, 64)
   378  		sp  = image.Pt(0, 0)
   379  	)
   380  	b.ResetTimer()
   381  	for i := 0; i < b.N; i++ {
   382  		drawPyrDownRGBA_Average_slow(dst, r, src, sp)
   383  	}
   384  }
   385  
   386  func BenchmarkDrawPyrDownRGBA_Average_fast_64x64(b *testing.B) {
   387  	var (
   388  		dst = image.NewRGBA(image.Rect(0, 0, 128, 128))
   389  		src = image.NewRGBA(image.Rect(0, 0, 128, 128))
   390  		r   = image.Rect(0, 0, 64, 64)
   391  		sp  = image.Pt(0, 0)
   392  	)
   393  	b.ResetTimer()
   394  	for i := 0; i < b.N; i++ {
   395  		drawPyrDownRGBA_Average_fast(dst, r, src, sp)
   396  	}
   397  }
   398  
   399  // ----------------------------------------------------------------------------
   400  // DrawPyrDownRGBA_Average: 128x128
   401  // ----------------------------------------------------------------------------
   402  
   403  func BenchmarkDrawPyrDown_Average_rgba_128x128(b *testing.B) {
   404  	var (
   405  		dst = image.NewRGBA(image.Rect(0, 0, 256, 256))
   406  		src = image.NewRGBA(image.Rect(0, 0, 256, 256))
   407  		r   = image.Rect(0, 0, 128, 128)
   408  		sp  = image.Pt(0, 0)
   409  	)
   410  	b.ResetTimer()
   411  	for i := 0; i < b.N; i++ {
   412  		drawPyrDown_Average(dst, r, src, sp)
   413  	}
   414  }
   415  
   416  func BenchmarkDrawPyrDownRGBA_Average_slow_128x128(b *testing.B) {
   417  	var (
   418  		dst = image.NewRGBA(image.Rect(0, 0, 256, 256))
   419  		src = image.NewRGBA(image.Rect(0, 0, 256, 256))
   420  		r   = image.Rect(0, 0, 128, 128)
   421  		sp  = image.Pt(0, 0)
   422  	)
   423  	b.ResetTimer()
   424  	for i := 0; i < b.N; i++ {
   425  		drawPyrDownRGBA_Average_slow(dst, r, src, sp)
   426  	}
   427  }
   428  
   429  func BenchmarkDrawPyrDownRGBA_Average_fast_128x128(b *testing.B) {
   430  	var (
   431  		dst = image.NewRGBA(image.Rect(0, 0, 256, 256))
   432  		src = image.NewRGBA(image.Rect(0, 0, 256, 256))
   433  		r   = image.Rect(0, 0, 128, 128)
   434  		sp  = image.Pt(0, 0)
   435  	)
   436  	b.ResetTimer()
   437  	for i := 0; i < b.N; i++ {
   438  		drawPyrDownRGBA_Average_fast(dst, r, src, sp)
   439  	}
   440  }
   441  
   442  // ----------------------------------------------------------------------------
   443  // DrawPyrDown_Interlace_gray
   444  // ----------------------------------------------------------------------------
   445  
   446  func BenchmarkDrawPyrDown_Interlace_gray_5x5(b *testing.B) {
   447  	var (
   448  		dst = image.NewGray(image.Rect(0, 0, 10, 10))
   449  		src = image.NewGray(image.Rect(0, 0, 10, 10))
   450  		r   = image.Rect(0, 0, 5, 5)
   451  		sp  = image.Pt(0, 0)
   452  	)
   453  	b.ResetTimer()
   454  	for i := 0; i < b.N; i++ {
   455  		drawPyrDownGray_Interlace(dst, r, src, sp)
   456  	}
   457  }
   458  
   459  func BenchmarkDrawPyrDown_Interlace_gray_16x16(b *testing.B) {
   460  	var (
   461  		dst = image.NewGray(image.Rect(0, 0, 32, 32))
   462  		src = image.NewGray(image.Rect(0, 0, 32, 32))
   463  		r   = image.Rect(0, 0, 16, 16)
   464  		sp  = image.Pt(0, 0)
   465  	)
   466  	b.ResetTimer()
   467  	for i := 0; i < b.N; i++ {
   468  		drawPyrDownGray_Interlace(dst, r, src, sp)
   469  	}
   470  }
   471  
   472  func BenchmarkDrawPyrDown_Interlace_gray_32x32(b *testing.B) {
   473  	var (
   474  		dst = image.NewGray(image.Rect(0, 0, 64, 64))
   475  		src = image.NewGray(image.Rect(0, 0, 64, 64))
   476  		r   = image.Rect(0, 0, 32, 32)
   477  		sp  = image.Pt(0, 0)
   478  	)
   479  	b.ResetTimer()
   480  	for i := 0; i < b.N; i++ {
   481  		drawPyrDownGray_Interlace(dst, r, src, sp)
   482  	}
   483  }
   484  
   485  func BenchmarkDrawPyrDown_Interlace_gray_64x64(b *testing.B) {
   486  	var (
   487  		dst = image.NewGray(image.Rect(0, 0, 128, 128))
   488  		src = image.NewGray(image.Rect(0, 0, 128, 128))
   489  		r   = image.Rect(0, 0, 64, 64)
   490  		sp  = image.Pt(0, 0)
   491  	)
   492  	b.ResetTimer()
   493  	for i := 0; i < b.N; i++ {
   494  		drawPyrDownGray_Interlace(dst, r, src, sp)
   495  	}
   496  }
   497  
   498  func BenchmarkDrawPyrDown_Interlace_gray_128x128(b *testing.B) {
   499  	var (
   500  		dst = image.NewGray(image.Rect(0, 0, 256, 256))
   501  		src = image.NewGray(image.Rect(0, 0, 256, 256))
   502  		r   = image.Rect(0, 0, 128, 128)
   503  		sp  = image.Pt(0, 0)
   504  	)
   505  	b.ResetTimer()
   506  	for i := 0; i < b.N; i++ {
   507  		drawPyrDownGray_Interlace(dst, r, src, sp)
   508  	}
   509  }
   510  
   511  // ----------------------------------------------------------------------------
   512  // END
   513  // ----------------------------------------------------------------------------