diff --git a/tools/UglyToad.PdfPig.Benchmarks/BruteForceBenchmarks.cs b/tools/UglyToad.PdfPig.Benchmarks/BruteForceBenchmarks.cs new file mode 100644 index 000000000..d11e3c51c --- /dev/null +++ b/tools/UglyToad.PdfPig.Benchmarks/BruteForceBenchmarks.cs @@ -0,0 +1,71 @@ +using BenchmarkDotNet.Attributes; +using UglyToad.PdfPig.Content; + +namespace UglyToad.PdfPig.Benchmarks; + +[Config(typeof(NuGetPackageConfig))] +[MemoryDiagnoser(displayGenColumns: false)] +public class BruteForceBenchmarks +{ + + [Benchmark] + public IReadOnlyList OpenOffice() + { + List letters = new List(); + using (var doc = PdfDocument.Open("Single Page Simple - from open office.pdf")) + { + foreach (var page in doc.GetPages()) + { + letters.AddRange(page.Letters); + } + } + + return letters; + } + + [Benchmark] + public IReadOnlyList Inkscape() + { + List letters = new List(); + using (var doc = PdfDocument.Open("Single Page Simple - from inkscape.pdf")) + { + foreach (var page in doc.GetPages()) + { + letters.AddRange(page.Letters); + } + } + + return letters; + } + + [Benchmark] + public IReadOnlyList Algo() + { + List letters = new List(); + using (var doc = PdfDocument.Open("algo.pdf")) + { + foreach (var page in doc.GetPages()) + { + letters.AddRange(page.Letters); + } + } + + return letters; + } + + + [Benchmark] + public IReadOnlyList PDFBOX_492_4_jar_8() + { + List letters = new List(); + using (var doc = PdfDocument.Open("PDFBOX-492-4.jar-8.pdf")) + { + foreach (var page in doc.GetPages()) + { + letters.AddRange(page.Letters); + } + } + + return letters; + } +} diff --git a/tools/UglyToad.PdfPig.Benchmarks/PDFBOX-492-4.jar-8.pdf b/tools/UglyToad.PdfPig.Benchmarks/PDFBOX-492-4.jar-8.pdf new file mode 100644 index 000000000..69ca9cd84 Binary files /dev/null and b/tools/UglyToad.PdfPig.Benchmarks/PDFBOX-492-4.jar-8.pdf differ diff --git a/tools/UglyToad.PdfPig.Benchmarks/Program.cs b/tools/UglyToad.PdfPig.Benchmarks/Program.cs index 1995e7cdb..332a2c1e0 100644 --- a/tools/UglyToad.PdfPig.Benchmarks/Program.cs +++ b/tools/UglyToad.PdfPig.Benchmarks/Program.cs @@ -6,7 +6,7 @@ internal class Program { static void Main(string[] args) { - var summary = BenchmarkRunner.Run(); + var summary = BenchmarkRunner.Run(); Console.ReadKey(); } } diff --git a/tools/UglyToad.PdfPig.Benchmarks/Single Page Simple - from inkscape.pdf b/tools/UglyToad.PdfPig.Benchmarks/Single Page Simple - from inkscape.pdf new file mode 100644 index 000000000..7d6dea710 Binary files /dev/null and b/tools/UglyToad.PdfPig.Benchmarks/Single Page Simple - from inkscape.pdf differ diff --git a/tools/UglyToad.PdfPig.Benchmarks/Single Page Simple - from open office.pdf b/tools/UglyToad.PdfPig.Benchmarks/Single Page Simple - from open office.pdf new file mode 100644 index 000000000..bb12f5f17 Binary files /dev/null and b/tools/UglyToad.PdfPig.Benchmarks/Single Page Simple - from open office.pdf differ diff --git a/tools/UglyToad.PdfPig.Benchmarks/UglyToad.PdfPig.Benchmarks.csproj b/tools/UglyToad.PdfPig.Benchmarks/UglyToad.PdfPig.Benchmarks.csproj index 7c77863b5..c0fecfcb7 100644 --- a/tools/UglyToad.PdfPig.Benchmarks/UglyToad.PdfPig.Benchmarks.csproj +++ b/tools/UglyToad.PdfPig.Benchmarks/UglyToad.PdfPig.Benchmarks.csproj @@ -15,17 +15,33 @@ + + + + - + + + Always + Always + + Always + + + Always + + + Always + \ No newline at end of file diff --git a/tools/UglyToad.PdfPig.Benchmarks/UglyToad.PdfPig.Benchmarks.slnx b/tools/UglyToad.PdfPig.Benchmarks/UglyToad.PdfPig.Benchmarks.slnx index d357ab7a2..ede63ccc5 100644 --- a/tools/UglyToad.PdfPig.Benchmarks/UglyToad.PdfPig.Benchmarks.slnx +++ b/tools/UglyToad.PdfPig.Benchmarks/UglyToad.PdfPig.Benchmarks.slnx @@ -1,6 +1,12 @@ + + + + + + + + - - diff --git a/tools/UglyToad.PdfPig.Benchmarks/algo.pdf b/tools/UglyToad.PdfPig.Benchmarks/algo.pdf new file mode 100644 index 000000000..7df68277d Binary files /dev/null and b/tools/UglyToad.PdfPig.Benchmarks/algo.pdf differ