-
Notifications
You must be signed in to change notification settings - Fork 191
Conversation
ApiCheck issues |
Related to call costs #811 |
Before
After
Affects the uncached calls; didn't seem to really improve general call chain otherwise 😢 May need yet to be implmented devirualization/inlines |
namespace Microsoft.AspNetCore.Http.Performance | ||
{ | ||
[Config(typeof(CoreConfig))] | ||
public class DefaultContextBenchmark |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would commit these separately.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Removed
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sorta; will get rid of the extras
|
@benaadams is this an experimentation or a WIP for an actual change? :) |
Was an actual change; let me work out what it was doing again... |
I'll close and reopen :D |
get_Version
IHttpRequestFeature
andIHttpResponseFeature
while creating the contextAdditionally there are compromises in
DefaultHttpXxx
for pooling; however this can be achieved without these compromises as well as improving the call chains to support devirtualization https://github.com/dotnet/coreclr/issues/9908.PooledHttpContext
thoughDefaultHttpContext
rather than via inheritance.DefaultHttpXxx
types to support devirtualization of overriden methodsDefaultHttpXxx
private members direct types rather than parent types to support devirtualizationDefaultHttpXxx
.ctorsDefaultHttpXxx
non-virtualNon-DefaultHttpXxx can still be archived by inheriting from
HttpXxx
and either implementing via wrappingDefaultHttpXxx
as per the Pooling example to make use of the feature caches; or by doing something alternative and using a completely different implementation.