Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/dotnet/aspnetcore.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/Http/Routing/perf/Microbenchmarks/LinkGeneration/SingleRouteWithConstraintsBenchmark.cs')
-rw-r--r--src/Http/Routing/perf/Microbenchmarks/LinkGeneration/SingleRouteWithConstraintsBenchmark.cs101
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);
}
}