Browse Source

Fix benchmarks.

af/merge-core
James Jackson-South 9 years ago
parent
commit
c5989cc813
  1. 22
      tests/ImageSharp.Benchmarks/BenchmarkBase.cs
  2. 13
      tests/ImageSharp.Benchmarks/Drawing/DrawBeziers.cs
  3. 11
      tests/ImageSharp.Benchmarks/Drawing/DrawLines.cs
  4. 4
      tests/ImageSharp.Benchmarks/Drawing/DrawPolygon.cs
  5. 18
      tests/ImageSharp.Benchmarks/Drawing/FillPolygon.cs
  6. 4
      tests/ImageSharp.Benchmarks/Drawing/FillRectangle.cs
  7. 13
      tests/ImageSharp.Benchmarks/Drawing/FillWithPattern.cs
  8. 2
      tests/ImageSharp.Benchmarks/Image/CopyPixels.cs
  9. 2
      tests/ImageSharp.Benchmarks/Image/DecodeBmp.cs
  10. 2
      tests/ImageSharp.Benchmarks/Image/DecodeFilteredPng.cs
  11. 2
      tests/ImageSharp.Benchmarks/Image/DecodeGif.cs
  12. 2
      tests/ImageSharp.Benchmarks/Image/DecodeJpeg.cs
  13. 2
      tests/ImageSharp.Benchmarks/Image/DecodePng.cs
  14. 2
      tests/ImageSharp.Benchmarks/Image/EncodeBmp.cs
  15. 2
      tests/ImageSharp.Benchmarks/Image/EncodeGif.cs
  16. 2
      tests/ImageSharp.Benchmarks/Image/EncodeJpeg.cs
  17. 10
      tests/ImageSharp.Benchmarks/Image/EncodeJpegMultiple.cs
  18. 2
      tests/ImageSharp.Benchmarks/Image/EncodePng.cs
  19. 2
      tests/ImageSharp.Benchmarks/Image/GetSetPixel.cs
  20. 10
      tests/ImageSharp.Benchmarks/Image/MultiImageBenchmarkBase.cs
  21. 2
      tests/ImageSharp.Benchmarks/Program.cs
  22. 2
      tests/ImageSharp.Benchmarks/Samplers/Crop.cs
  23. 2
      tests/ImageSharp.Benchmarks/Samplers/DetectEdges.cs
  24. 2
      tests/ImageSharp.Benchmarks/Samplers/Resize.cs

22
tests/ImageSharp.Benchmarks/BenchmarkBase.cs

@ -0,0 +1,22 @@
namespace ImageSharp.Benchmarks
{
using ImageSharp.Formats;
/// <summary>
/// The image benchmark base class.
/// </summary>
public abstract class BenchmarkBase
{
/// <summary>
/// Initializes a new instance of the <see cref="BenchmarkBase"/> class.
/// </summary>
protected BenchmarkBase()
{
// Add Image Formats
Configuration.Default.AddImageFormat(new JpegFormat());
Configuration.Default.AddImageFormat(new PngFormat());
Configuration.Default.AddImageFormat(new BmpFormat());
Configuration.Default.AddImageFormat(new GifFormat());
}
}
}

13
tests/ImageSharp.Benchmarks/Drawing/DrawBeziers.cs

@ -1,4 +1,4 @@
// <copyright file="Crop.cs" company="James Jackson-South">
// <copyright file="DrawBeziers.cs" company="James Jackson-South">
// Copyright (c) James Jackson-South and contributors.
// Licensed under the Apache License, Version 2.0.
// </copyright>
@ -7,15 +7,16 @@ namespace ImageSharp.Benchmarks
{
using System.Drawing;
using System.Drawing.Drawing2D;
using System.IO;
using System.Numerics;
using BenchmarkDotNet.Attributes;
using CoreColor = ImageSharp.Color;
using CoreImage = ImageSharp.Image;
using CorePoint = ImageSharp.Point;
using CoreColor = ImageSharp.Color;
using System.IO;
using System.Numerics;
public class DrawBeziers
public class DrawBeziers : BenchmarkBase
{
[Benchmark(Baseline = true, Description = "System.Drawing Draw Beziers")]
public void DrawPathSystemDrawing()
@ -47,7 +48,7 @@ namespace ImageSharp.Benchmarks
public void DrawLinesCore()
{
CoreImage image = new CoreImage(800, 800);
image.DrawBeziers(CoreColor.HotPink, 10, new[] {
new Vector2(10, 500),
new Vector2(30, 10),

11
tests/ImageSharp.Benchmarks/Drawing/DrawLines.cs

@ -1,4 +1,4 @@
// <copyright file="Crop.cs" company="James Jackson-South">
// <copyright file="DrawLines.cs" company="James Jackson-South">
// Copyright (c) James Jackson-South and contributors.
// Licensed under the Apache License, Version 2.0.
// </copyright>
@ -7,15 +7,16 @@ namespace ImageSharp.Benchmarks
{
using System.Drawing;
using System.Drawing.Drawing2D;
using System.IO;
using System.Numerics;
using BenchmarkDotNet.Attributes;
using CoreColor = ImageSharp.Color;
using CoreImage = ImageSharp.Image;
using CorePoint = ImageSharp.Point;
using CoreColor = ImageSharp.Color;
using System.IO;
using System.Numerics;
public class DrawLines
public class DrawLines : BenchmarkBase
{
[Benchmark(Baseline = true, Description = "System.Drawing Draw Lines")]
public void DrawPathSystemDrawing()

4
tests/ImageSharp.Benchmarks/Drawing/DrawPolygon.cs

@ -15,7 +15,7 @@ namespace ImageSharp.Benchmarks
using System.IO;
using System.Numerics;
public class DrawPolygon
public class DrawPolygon : BenchmarkBase
{
[Benchmark(Baseline = true, Description = "System.Drawing Draw Polygon")]
public void DrawPolygonSystemDrawing()
@ -46,7 +46,7 @@ namespace ImageSharp.Benchmarks
public void DrawPolygonCore()
{
CoreImage image = new CoreImage(800, 800);
image.DrawPolygon(CoreColor.HotPink, 10, new[] {
new Vector2(10, 10),
new Vector2(550, 50),

18
tests/ImageSharp.Benchmarks/Drawing/FillPolygon.cs

@ -1,4 +1,4 @@
// <copyright file="Crop.cs" company="James Jackson-South">
// <copyright file="FillPolygon.cs" company="James Jackson-South">
// Copyright (c) James Jackson-South and contributors.
// Licensed under the Apache License, Version 2.0.
// </copyright>
@ -7,14 +7,15 @@ namespace ImageSharp.Benchmarks
{
using System.Drawing;
using System.Drawing.Drawing2D;
using System.IO;
using System.Numerics;
using BenchmarkDotNet.Attributes;
using CoreImage = ImageSharp.Image;
using CoreColor = ImageSharp.Color;
using System.IO;
using System.Numerics;
using CoreImage = ImageSharp.Image;
public class FillPolygon
public class FillPolygon : BenchmarkBase
{
[Benchmark(Baseline = true, Description = "System.Drawing Fill Polygon")]
public void DrawSolidPolygonSystemDrawing()
@ -25,7 +26,9 @@ namespace ImageSharp.Benchmarks
using (Graphics graphics = Graphics.FromImage(destination))
{
graphics.SmoothingMode = SmoothingMode.AntiAlias;
graphics.FillPolygon(Brushes.HotPink, new[] {
graphics.FillPolygon(Brushes.HotPink,
new[]
{
new Point(10, 10),
new Point(550, 50),
new Point(200, 400)
@ -47,8 +50,7 @@ namespace ImageSharp.Benchmarks
new Vector2(10, 10),
new Vector2(550, 50),
new Vector2(200, 400)
}
);
});
using (MemoryStream ms = new MemoryStream())
{

4
tests/ImageSharp.Benchmarks/Drawing/FillRectangle.cs

@ -13,10 +13,10 @@ namespace ImageSharp.Benchmarks
using CoreRectangle = ImageSharp.Rectangle;
using CoreColor = ImageSharp.Color;
using CoreSize = ImageSharp.Size;
using System.IO;
using System.Numerics;
public class FillRectangle
public class FillRectangle : BenchmarkBase
{
[Benchmark(Baseline = true, Description = "System.Drawing Fill Rectangle")]
public Size FillRectangleSystemDrawing()

13
tests/ImageSharp.Benchmarks/Drawing/FillWithPattern.cs

@ -1,4 +1,4 @@
// <copyright file="Crop.cs" company="James Jackson-South">
// <copyright file="FillWithPattern.cs" company="James Jackson-South">
// Copyright (c) James Jackson-South and contributors.
// Licensed under the Apache License, Version 2.0.
// </copyright>
@ -7,14 +7,13 @@ namespace ImageSharp.Benchmarks
{
using System.Drawing;
using System.Drawing.Drawing2D;
using System.IO;
using BenchmarkDotNet.Attributes;
using CoreImage = ImageSharp.Image;
using CorePoint = ImageSharp.Point;
using CoreColor = ImageSharp.Color;
using CoreBrushes = ImageSharp.Drawing.Brushes.Brushes;
using CorePatternBrush = ImageSharp.Drawing.Brushes.PatternBrush;
using System.IO;
using CoreColor = ImageSharp.Color;
using CoreImage = ImageSharp.Image;
public class FillWithPattern
{
@ -27,7 +26,7 @@ namespace ImageSharp.Benchmarks
{
graphics.SmoothingMode = SmoothingMode.AntiAlias;
var brush = new HatchBrush(HatchStyle.BackwardDiagonal, Color.HotPink);
graphics.FillRectangle(brush, new Rectangle(0,0, 800,800)); // can't find a way to flood fill with a brush
graphics.FillRectangle(brush, new Rectangle(0,0, 800,800)); // can't find a way to flood fill with a brush
}
using (MemoryStream ms = new MemoryStream())
{

2
tests/ImageSharp.Benchmarks/Image/CopyPixels.cs

@ -12,7 +12,7 @@ namespace ImageSharp.Benchmarks.Image
using CoreColor = ImageSharp.Color;
using CoreImage = ImageSharp.Image;
public class CopyPixels
public class CopyPixels : BenchmarkBase
{
[Benchmark(Description = "Copy by Pixel")]
public CoreColor CopyByPixel()

2
tests/ImageSharp.Benchmarks/Image/DecodeBmp.cs

@ -13,7 +13,7 @@ namespace ImageSharp.Benchmarks.Image
using CoreImage = ImageSharp.Image;
using CoreSize = ImageSharp.Size;
public class DecodeBmp
public class DecodeBmp : BenchmarkBase
{
private byte[] bmpBytes;

2
tests/ImageSharp.Benchmarks/Image/DecodeFilteredPng.cs

@ -11,7 +11,7 @@ namespace ImageSharp.Benchmarks.Image
using ImageSharp;
public class DecodeFilteredPng
public class DecodeFilteredPng : BenchmarkBase
{
private MemoryStream filter0;
private MemoryStream filter1;

2
tests/ImageSharp.Benchmarks/Image/DecodeGif.cs

@ -13,7 +13,7 @@ namespace ImageSharp.Benchmarks.Image
using CoreImage = ImageSharp.Image;
using CoreSize = ImageSharp.Size;
public class DecodeGif
public class DecodeGif : BenchmarkBase
{
private byte[] gifBytes;

2
tests/ImageSharp.Benchmarks/Image/DecodeJpeg.cs

@ -13,7 +13,7 @@ namespace ImageSharp.Benchmarks.Image
using CoreImage = ImageSharp.Image;
using CoreSize = ImageSharp.Size;
public class DecodeJpeg
public class DecodeJpeg : BenchmarkBase
{
private byte[] jpegBytes;

2
tests/ImageSharp.Benchmarks/Image/DecodePng.cs

@ -13,7 +13,7 @@ namespace ImageSharp.Benchmarks.Image
using CoreImage = ImageSharp.Image;
using CoreSize = ImageSharp.Size;
public class DecodePng
public class DecodePng : BenchmarkBase
{
private byte[] pngBytes;

2
tests/ImageSharp.Benchmarks/Image/EncodeBmp.cs

@ -12,7 +12,7 @@ namespace ImageSharp.Benchmarks.Image
using BenchmarkDotNet.Attributes;
using CoreImage = ImageSharp.Image;
public class EncodeBmp
public class EncodeBmp : BenchmarkBase
{
// System.Drawing needs this.
private Stream bmpStream;

2
tests/ImageSharp.Benchmarks/Image/EncodeGif.cs

@ -12,7 +12,7 @@ namespace ImageSharp.Benchmarks.Image
using BenchmarkDotNet.Attributes;
using CoreImage = ImageSharp.Image;
public class EncodeGif
public class EncodeGif : BenchmarkBase
{
// System.Drawing needs this.
private Stream bmpStream;

2
tests/ImageSharp.Benchmarks/Image/EncodeJpeg.cs

@ -12,7 +12,7 @@ namespace ImageSharp.Benchmarks.Image
using BenchmarkDotNet.Attributes;
using CoreImage = ImageSharp.Image;
public class EncodeJpeg
public class EncodeJpeg : BenchmarkBase
{
// System.Drawing needs this.
private Stream bmpStream;

10
tests/ImageSharp.Benchmarks/Image/EncodeJpegMultiple.cs

@ -15,11 +15,11 @@
public class EncodeJpegMultiple : MultiImageBenchmarkBase.WithImagesPreloaded
{
protected override IEnumerable<string> InputImageSubfolders => new[]
{
"Formats/Bmp/",
"Formats/Jpg/baseline"
};
{
"Formats/Bmp/",
"Formats/Jpg/baseline"
};
protected override IEnumerable<string> FileFilters => new[] { "*.bmp", "*.jpg" };
[Benchmark(Description = "EncodeJpegMultiple - ImageSharp")]

2
tests/ImageSharp.Benchmarks/Image/EncodePng.cs

@ -12,7 +12,7 @@ namespace ImageSharp.Benchmarks.Image
using BenchmarkDotNet.Attributes;
using CoreImage = ImageSharp.Image;
public class EncodePng
public class EncodePng : BenchmarkBase
{
// System.Drawing needs this.
private Stream bmpStream;

2
tests/ImageSharp.Benchmarks/Image/GetSetPixel.cs

@ -13,7 +13,7 @@ namespace ImageSharp.Benchmarks.Image
using CoreImage = ImageSharp.Image;
using SystemColor = System.Drawing.Color;
public class GetSetPixel
public class GetSetPixel : BenchmarkBase
{
[Benchmark(Baseline = true, Description = "System.Drawing GetSet pixel")]
public SystemColor ResizeSystemDrawing()

10
tests/ImageSharp.Benchmarks/Image/MultiImageBenchmarkBase.cs

@ -11,7 +11,7 @@
using Image = ImageSharp.Image;
public abstract class MultiImageBenchmarkBase
public abstract class MultiImageBenchmarkBase : BenchmarkBase
{
protected Dictionary<string, byte[]> FileNamesToBytes = new Dictionary<string, byte[]>();
@ -26,7 +26,7 @@
LargeImagesOnly
}
[Params(TestingMode.All, TestingMode.SmallImagesOnly, TestingMode.LargeImagesOnly)]
public TestingMode Mode { get; set; }
@ -62,7 +62,7 @@
this.EnumeratePairsByBenchmarkSettings(
this.FileNamesToBytes,
arr => arr.Length < this.LargeImageThresholdInBytes);
protected abstract IEnumerable<string> InputImageSubfolders { get; }
[Setup]
@ -122,7 +122,7 @@
using (var ms1 = new MemoryStream(bytes))
{
this.FileNamesToImageSharpImages[fn] = new Image(ms1);
}
this.FileNamesToSystemDrawingImages[fn] = new Bitmap(new MemoryStream(bytes));
@ -178,7 +178,7 @@
}
}
}

2
tests/ImageSharp.Benchmarks/Program.cs

@ -7,6 +7,8 @@ namespace ImageSharp.Benchmarks
{
using BenchmarkDotNet.Running;
using ImageSharp.Formats;
public class Program
{
/// <summary>

2
tests/ImageSharp.Benchmarks/Samplers/Crop.cs

@ -13,7 +13,7 @@ namespace ImageSharp.Benchmarks
using CoreImage = ImageSharp.Image;
using CoreSize = ImageSharp.Size;
public class Crop
public class Crop : BenchmarkBase
{
[Benchmark(Baseline = true, Description = "System.Drawing Crop")]
public Size CropSystemDrawing()

2
tests/ImageSharp.Benchmarks/Samplers/DetectEdges.cs

@ -11,7 +11,7 @@ namespace ImageSharp.Benchmarks
using CoreImage = ImageSharp.Image;
public class DetectEdges
public class DetectEdges : BenchmarkBase
{
private CoreImage image;

2
tests/ImageSharp.Benchmarks/Samplers/Resize.cs

@ -12,7 +12,7 @@ namespace ImageSharp.Benchmarks
using CoreSize = ImageSharp.Size;
using CoreImage = ImageSharp.Image;
public class Resize
public class Resize : BenchmarkBase
{
[Benchmark(Baseline = true, Description = "System.Drawing Resize")]
public Size ResizeSystemDrawing()

Loading…
Cancel
Save