Skip to content

Regression in Caching TechEmpower benchmark #52640

@adamsitnik

Description

@adamsitnik

I wanted to provide some nice benchmark results for @maryamariyan who is currently writing the blog post about Microsoft.Extensions* improvements we did for .NET 6.

To my surprise, the CachingPlatform-intel-win has regressed from 290k+ to 270k RPS. CachingPlatform-intel (which is running on Linux) regressed from 270k+ to 255k RPS.

The regression happened on the 12th of April:

obraz

Power BI

I have taken a brief look at the profiles and it seems that it has been caused by #50778 which got also confirmed by the perf bot in DrewScoggins/performance-2#5151

The Caching benchmark is very specific, as due to caching the values are fetched from the database only once, and most of the time (40%+) is spent in... JSON serialization ;)

The JSON serialization logic can be found here:

https://github.com/aspnet/Benchmarks/blob/6e7bff20860c92fd22b511bfd160f6f153e7e96e/src/BenchmarksApps/Kestrel/PlatformBenchmarks/BenchmarkApplication.MultipleQueries.cs#L17-L39

In the case of this particular benchmark, we are serializing an array of one hundred instances of World, which is a very small class:

https://github.com/aspnet/Benchmarks/blob/6e7bff20860c92fd22b511bfd160f6f153e7e96e/src/BenchmarksApps/Kestrel/PlatformBenchmarks/Data/CachedWorld.cs

@eiriktsarpalis @layomia @steveharter is there any chance that you could take a look?

edit: struct -> class

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions