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 // ----------------------------------------------------------------------------