Skip to content

Commit 3d694ee

Browse files
committed
Don't bother looping input streams in MimeParser benchmarks
1 parent b4552f6 commit 3d694ee

File tree

1 file changed

+13
-44
lines changed

1 file changed

+13
-44
lines changed

Benchmarks/MimeParserBenchmarks.cs

+13-44
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,7 @@ public class MimeParserBenchmarks
3737
{
3838
static readonly string MessagesDataDir = Path.Combine (BenchmarkHelper.ProjectDir, "TestData", "messages");
3939
static readonly string MboxDataDir = Path.Combine (BenchmarkHelper.UnitTestsDir, "TestData", "mbox");
40-
const string MessageHeaderStressTest = @"From -
41-
Return-Path: <info@someserver>
40+
const string MessageHeaderStressTest = @"Return-Path: <info@someserver>
4241
Received: from maleman.mcom.com (maleman.mcom.com [198.93.92.3]) by urchin.netscape.com (8.6.12/8.6.9) with ESMTP id EAA18301; Thu, 25 Apr 1996 04:30:51 -0700
4342
Received: from ns.netscape.com (ns.netscape.com.mcom.com [198.95.251.10]) by maleman.mcom.com (8.6.9/8.6.9) with ESMTP id EAA01168; Thu, 25 Apr 1996 04:29:58 -0700
4443
Received: from RSA.COM (RSA.COM [192.80.211.33]) by ns.netscape.com (8.7.3/8.7.3) with SMTP id EAA17575; Thu, 25 Apr 1996 04:29:05 -0700 (PDT)
@@ -118,13 +117,7 @@ static void MimeParserSingleMessage (string fileName, bool persistent = false)
118117
var path = Path.Combine (MessagesDataDir, fileName);
119118
using var stream = File.OpenRead (path);
120119
var parser = new MimeParser (stream, MimeFormat.Entity, persistent);
121-
122-
for (int i = 0; i < 1000; i++) {
123-
parser.ParseMessage ();
124-
125-
stream.Position = 0;
126-
parser.SetStream (stream, MimeFormat.Entity, persistent);
127-
}
120+
var message = parser.ParseMessage ();
128121
}
129122

130123
[Benchmark]
@@ -144,8 +137,7 @@ static void MimeParserMboxFile (string fileName, bool persistent = false)
144137
var path = Path.Combine (MboxDataDir, fileName);
145138

146139
using var stream = File.OpenRead (path);
147-
using var looped = new LoopedInputStream (stream, 10);
148-
var parser = new MimeParser (looped, MimeFormat.Mbox, persistent);
140+
var parser = new MimeParser (stream, MimeFormat.Mbox, persistent);
149141

150142
while (!parser.IsEndOfStream) {
151143
parser.ParseMessage ();
@@ -180,12 +172,9 @@ public void MimeParser_JwzMboxPersistent ()
180172
public void MimeParser_HeaderStressTest ()
181173
{
182174
using var stream = new MemoryStream (MessageHeaderStressTestData, false);
183-
using var looped = new LoopedInputStream (stream, 1000);
184-
var parser = new MimeParser (looped, MimeFormat.Mbox, true);
175+
var parser = new MimeParser (stream, MimeFormat.Entity, true);
185176

186-
while (!parser.IsEndOfStream) {
187-
parser.ParseMessage ();
188-
}
177+
parser.ParseMessage ();
189178
}
190179

191180
#endregion MimeParser
@@ -197,13 +186,7 @@ static void ExperimentalMimeParserSingleMessage (string fileName, bool persisten
197186
var path = Path.Combine (MessagesDataDir, fileName);
198187
using var stream = File.OpenRead (path);
199188
var parser = new ExperimentalMimeParser (stream, MimeFormat.Entity, persistent);
200-
201-
for (int i = 0; i < 1000; i++) {
202-
parser.ParseMessage ();
203-
204-
stream.Position = 0;
205-
parser.SetStream (stream, MimeFormat.Entity, persistent);
206-
}
189+
var message = parser.ParseMessage ();
207190
}
208191

209192
[Benchmark]
@@ -222,8 +205,7 @@ static void ExperimentalMimeParserMboxFile (string fileName, bool persistent = f
222205
{
223206
var path = Path.Combine (MboxDataDir, fileName);
224207
using var stream = File.OpenRead (path);
225-
using var looped = new LoopedInputStream (stream, 10);
226-
var parser = new ExperimentalMimeParser (looped, MimeFormat.Mbox, persistent);
208+
var parser = new ExperimentalMimeParser (stream, MimeFormat.Mbox, persistent);
227209

228210
while (!parser.IsEndOfStream) {
229211
parser.ParseMessage ();
@@ -258,12 +240,9 @@ public void ExperimentalMimeParser_JwzMboxPersistent ()
258240
public void ExperimentalMimeParser_HeaderStressTest ()
259241
{
260242
using var stream = new MemoryStream (MessageHeaderStressTestData, false);
261-
using var looped = new LoopedInputStream (stream, 1000);
262-
var parser = new ExperimentalMimeParser (looped, MimeFormat.Mbox, true);
243+
var parser = new ExperimentalMimeParser (stream, MimeFormat.Entity, true);
263244

264-
while (!parser.IsEndOfStream) {
265-
parser.ParseMessage ();
266-
}
245+
parser.ParseMessage ();
267246
}
268247

269248
#endregion ExperimentalMimeParser
@@ -275,13 +254,7 @@ static void MimeReaderSingleMessage (string fileName)
275254
var path = Path.Combine (MessagesDataDir, fileName);
276255
using var stream = File.OpenRead (path);
277256
var reader = new MimeReader (stream, MimeFormat.Entity);
278-
279-
for (int i = 0; i < 1000; i++) {
280-
reader.ReadMessage ();
281-
282-
stream.Position = 0;
283-
reader.SetStream (stream, MimeFormat.Entity);
284-
}
257+
reader.ReadMessage ();
285258
}
286259

287260
[Benchmark]
@@ -294,8 +267,7 @@ static void MimeReaderMboxFile (string fileName)
294267
{
295268
var path = Path.Combine (MboxDataDir, fileName);
296269
using var stream = File.OpenRead (path);
297-
using var looped = new LoopedInputStream (stream, 10);
298-
var reader = new MimeReader (looped, MimeFormat.Mbox);
270+
var reader = new MimeReader (stream, MimeFormat.Mbox);
299271

300272
while (!reader.IsEndOfStream) {
301273
reader.ReadMessage ();
@@ -318,12 +290,9 @@ public void MimeReader_JwzMbox ()
318290
public void MimeReader_HeaderStressTest ()
319291
{
320292
using var stream = new MemoryStream (MessageHeaderStressTestData, false);
321-
using var looped = new LoopedInputStream (stream, 1000);
322-
var reader = new MimeReader (looped, MimeFormat.Mbox);
293+
var reader = new MimeReader (stream, MimeFormat.Entity);
323294

324-
while (!reader.IsEndOfStream) {
325-
reader.ReadMessage ();
326-
}
295+
reader.ReadMessage ();
327296
}
328297

329298
#endregion

0 commit comments

Comments
 (0)