Просмотр исходного кода

Add benchmarks to compare execution times.

Run "go test -bench LargeJpegThumb" to benchmark all functions at once.
jst 12 лет назад
Родитель
Сommit
8f586c4f06
1 измененных файлов с 44 добавлено и 0 удалено
  1. 44 0
      resize_test.go

+ 44 - 0
resize_test.go

@@ -78,3 +78,47 @@ func Benchmark_Reduction(b *testing.B) {
 	}
 	m.At(0, 0)
 }
+
+// Benchmark resize of 16 MPix jpeg image to 800px width.
+func jpegThumb(b *testing.B, interp InterpolationFunction) {
+	input := image.NewYCbCr(image.Rect(0, 0, 4896, 3264), image.YCbCrSubsampleRatio422)
+
+	var output image.Image
+	for i := 0; i < b.N; i++ {
+		output = Resize(800, 0, input, interp)
+	}
+
+	output.At(0, 0)
+}
+
+func Benchmark_LargeJpegThumbNearestNeighbor(b *testing.B) {
+	jpegThumb(b, NearestNeighbor)
+}
+
+func Benchmark_LargeJpegThumbBilinear(b *testing.B) {
+	jpegThumb(b, Bilinear)
+}
+
+func Benchmark_LargeJpegThumbBicubic(b *testing.B) {
+	jpegThumb(b, Bicubic)
+}
+
+func Benchmark_LargeJpegThumbMitchellNetravali(b *testing.B) {
+	jpegThumb(b, MitchellNetravali)
+}
+
+func Benchmark_LargeJpegThumbLanczos2Lut(b *testing.B) {
+	jpegThumb(b, Lanczos2Lut)
+}
+
+func Benchmark_LargeJpegThumbLanczos2(b *testing.B) {
+	jpegThumb(b, Lanczos2)
+}
+
+func Benchmark_LargeJpegThumbLanczos3Lut(b *testing.B) {
+	jpegThumb(b, Lanczos3Lut)
+}
+
+func Benchmark_LargeJpegThumbLanczos3(b *testing.B) {
+	jpegThumb(b, Lanczos3)
+}