Skip to content

Commit

Permalink
Fixed MimeParser benchmarks to dispose the messages after parsing
Browse files Browse the repository at this point in the history
This reduces stress on the GC and gives us more accurate results because
of that.
  • Loading branch information
jstedfast committed Feb 2, 2025
1 parent f478fb3 commit b92923b
Showing 1 changed file with 10 additions and 6 deletions.
16 changes: 10 additions & 6 deletions Benchmarks/MimeParserBenchmarks.cs
Original file line number Diff line number Diff line change
Expand Up @@ -118,6 +118,7 @@ static void MimeParserSingleMessage (string fileName, bool persistent = false)
using var stream = File.OpenRead (path);
var parser = new MimeParser (stream, MimeFormat.Entity, persistent);
var message = parser.ParseMessage ();
message.Dispose ();
}

[Benchmark]
Expand All @@ -140,7 +141,8 @@ static void MimeParserMboxFile (string fileName, bool persistent = false)
var parser = new MimeParser (stream, MimeFormat.Mbox, persistent);

while (!parser.IsEndOfStream) {
parser.ParseMessage ();
var message = parser.ParseMessage ();
message.Dispose ();
}
}

Expand Down Expand Up @@ -173,8 +175,8 @@ public void MimeParser_HeaderStressTest ()
{
using var stream = new MemoryStream (MessageHeaderStressTestData, false);
var parser = new MimeParser (stream, MimeFormat.Entity, true);

parser.ParseMessage ();
var message = parser.ParseMessage ();
message.Dispose ();
}

#endregion MimeParser
Expand All @@ -187,6 +189,7 @@ static void ExperimentalMimeParserSingleMessage (string fileName, bool persisten
using var stream = File.OpenRead (path);
var parser = new ExperimentalMimeParser (stream, MimeFormat.Entity, persistent);
var message = parser.ParseMessage ();
message.Dispose ();
}

[Benchmark]
Expand All @@ -208,7 +211,8 @@ static void ExperimentalMimeParserMboxFile (string fileName, bool persistent = f
var parser = new ExperimentalMimeParser (stream, MimeFormat.Mbox, persistent);

while (!parser.IsEndOfStream) {
parser.ParseMessage ();
var message = parser.ParseMessage ();
message.Dispose ();
}
}

Expand Down Expand Up @@ -241,8 +245,8 @@ public void ExperimentalMimeParser_HeaderStressTest ()
{
using var stream = new MemoryStream (MessageHeaderStressTestData, false);
var parser = new ExperimentalMimeParser (stream, MimeFormat.Entity, true);

parser.ParseMessage ();
var message = parser.ParseMessage ();
message.Dispose ();
}

#endregion ExperimentalMimeParser
Expand Down

0 comments on commit b92923b

Please sign in to comment.