Skip to content

Commit c064ac0

Browse files
committed
Add more benchmarks
1 parent 675d0b6 commit c064ac0

File tree

1 file changed

+30
-5
lines changed

1 file changed

+30
-5
lines changed

src/Servers/Kestrel/perf/Microbenchmarks/HttpProtocolFeatureCollection.cs

+30-5
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,9 @@
55
using System.Buffers;
66
using System.IO.Pipelines;
77
using System.Runtime.CompilerServices;
8-
using System.Threading;
9-
using System.Threading.Tasks;
108
using BenchmarkDotNet.Attributes;
119
using Microsoft.AspNetCore.Http.Features;
1210
using Microsoft.AspNetCore.Server.Kestrel.Core;
13-
using Microsoft.AspNetCore.Server.Kestrel.Core.Internal;
1411
using Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http;
1512
using Microsoft.AspNetCore.Testing;
1613

@@ -22,18 +19,46 @@ public class HttpProtocolFeatureCollection
2219

2320
[Benchmark]
2421
[MethodImpl(MethodImplOptions.NoInlining)]
25-
public IHttpRequestFeature GetViaTypeOf_First()
22+
public IHttpRequestFeature GetViaTypeOf_IHttpRequestFeature()
2623
{
2724
return (IHttpRequestFeature)_collection[typeof(IHttpRequestFeature)];
2825
}
2926

3027
[Benchmark]
3128
[MethodImpl(MethodImplOptions.NoInlining)]
32-
public IHttpRequestFeature GetViaGeneric_First()
29+
public IHttpRequestFeature GetViaGeneric_IHttpRequestFeature()
3330
{
3431
return _collection.Get<IHttpRequestFeature>();
3532
}
3633

34+
[Benchmark]
35+
[MethodImpl(MethodImplOptions.NoInlining)]
36+
public IQueryFeature GetViaTypeOf_IQueryFeature()
37+
{
38+
return (IQueryFeature)_collection[typeof(IQueryFeature)];
39+
}
40+
41+
[Benchmark]
42+
[MethodImpl(MethodImplOptions.NoInlining)]
43+
public IQueryFeature GetViaGeneric_IQueryFeature()
44+
{
45+
return _collection.Get<IQueryFeature>();
46+
}
47+
48+
[Benchmark]
49+
[MethodImpl(MethodImplOptions.NoInlining)]
50+
public IHttpResetFeature GetViaTypeOf_IHttpResetFeature()
51+
{
52+
return (IHttpResetFeature)_collection[typeof(IHttpResetFeature)];
53+
}
54+
55+
[Benchmark]
56+
[MethodImpl(MethodImplOptions.NoInlining)]
57+
public IHttpResetFeature GetViaGeneric_IHttpResetFeature()
58+
{
59+
return _collection.Get<IHttpResetFeature>();
60+
}
61+
3762
[Benchmark]
3863
[MethodImpl(MethodImplOptions.NoInlining)]
3964
public object GetViaTypeOf_Custom()

0 commit comments

Comments
 (0)