diff options
Diffstat (limited to 'src/Http/Routing/perf/Microbenchmarks/LinkGeneration/SingleRouteWithConstraintsBenchmark.cs')
-rw-r--r-- | src/Http/Routing/perf/Microbenchmarks/LinkGeneration/SingleRouteWithConstraintsBenchmark.cs | 101 |
1 files changed, 50 insertions, 51 deletions
diff --git a/src/Http/Routing/perf/Microbenchmarks/LinkGeneration/SingleRouteWithConstraintsBenchmark.cs b/src/Http/Routing/perf/Microbenchmarks/LinkGeneration/SingleRouteWithConstraintsBenchmark.cs index 7c2f7a2273..925bc5159d 100644 --- a/src/Http/Routing/perf/Microbenchmarks/LinkGeneration/SingleRouteWithConstraintsBenchmark.cs +++ b/src/Http/Routing/perf/Microbenchmarks/LinkGeneration/SingleRouteWithConstraintsBenchmark.cs @@ -6,69 +6,68 @@ using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Routing.Tree; using Microsoft.Extensions.DependencyInjection; -namespace Microsoft.AspNetCore.Routing.LinkGeneration -{ - public class SingleRouteWithConstraintsBenchmark : EndpointRoutingBenchmarkBase - { - private TreeRouter _treeRouter; - private LinkGenerator _linkGenerator; - private (HttpContext HttpContext, RouteValueDictionary AmbientValues) _requestContext; - - [GlobalSetup] - public void Setup() - { - var template = "Customers/Details/{category}/{region}/{id:int}"; - var defaults = new { controller = "Customers", action = "Details" }; - var requiredValues = new { controller = "Customers", action = "Details" }; +namespace Microsoft.AspNetCore.Routing.LinkGeneration; - // Endpoint routing related - SetupEndpoints(CreateEndpoint(template, defaults, requiredValues: requiredValues)); - var services = CreateServices(); - _linkGenerator = services.GetRequiredService<LinkGenerator>(); +public class SingleRouteWithConstraintsBenchmark : EndpointRoutingBenchmarkBase +{ + private TreeRouter _treeRouter; + private LinkGenerator _linkGenerator; + private (HttpContext HttpContext, RouteValueDictionary AmbientValues) _requestContext; - // Attribute routing related - var treeRouteBuilder = services.GetRequiredService<TreeRouteBuilder>(); - CreateOutboundRouteEntry(treeRouteBuilder, Endpoints[0]); - _treeRouter = treeRouteBuilder.Build(); + [GlobalSetup] + public void Setup() + { + var template = "Customers/Details/{category}/{region}/{id:int}"; + var defaults = new { controller = "Customers", action = "Details" }; + var requiredValues = new { controller = "Customers", action = "Details" }; - _requestContext = CreateCurrentRequestContext(); - } + // Endpoint routing related + SetupEndpoints(CreateEndpoint(template, defaults, requiredValues: requiredValues)); + var services = CreateServices(); + _linkGenerator = services.GetRequiredService<LinkGenerator>(); - [Benchmark(Baseline = true)] - public void TreeRouter() - { - var virtualPathData = _treeRouter.GetVirtualPath(new VirtualPathContext( - _requestContext.HttpContext, - ambientValues: _requestContext.AmbientValues, - values: new RouteValueDictionary( - new - { - controller = "Customers", - action = "Details", - category = "Administration", - region = "US", - id = 10 - }))); + // Attribute routing related + var treeRouteBuilder = services.GetRequiredService<TreeRouteBuilder>(); + CreateOutboundRouteEntry(treeRouteBuilder, Endpoints[0]); + _treeRouter = treeRouteBuilder.Build(); - AssertUrl("/Customers/Details/Administration/US/10", virtualPathData?.VirtualPath); - } + _requestContext = CreateCurrentRequestContext(); + } - [Benchmark] - public void EndpointRouting() - { - var actualUrl = _linkGenerator.GetPathByRouteValues( - _requestContext.HttpContext, - routeName: null, - values: new + [Benchmark(Baseline = true)] + public void TreeRouter() + { + var virtualPathData = _treeRouter.GetVirtualPath(new VirtualPathContext( + _requestContext.HttpContext, + ambientValues: _requestContext.AmbientValues, + values: new RouteValueDictionary( + new { controller = "Customers", action = "Details", category = "Administration", region = "US", id = 10 - }); + }))); + + AssertUrl("/Customers/Details/Administration/US/10", virtualPathData?.VirtualPath); + } + + [Benchmark] + public void EndpointRouting() + { + var actualUrl = _linkGenerator.GetPathByRouteValues( + _requestContext.HttpContext, + routeName: null, + values: new + { + controller = "Customers", + action = "Details", + category = "Administration", + region = "US", + id = 10 + }); - AssertUrl("/Customers/Details/Administration/US/10", actualUrl); - } + AssertUrl("/Customers/Details/Administration/US/10", actualUrl); } } |