-
Notifications
You must be signed in to change notification settings - Fork 5.3k
Open
Labels
area-Extensions-DependencyInjectiontenet-performancePerformance related issuePerformance related issue
Milestone
Description
In Orchard CMS which is quite allocaty, the second culprit is DI. This code path does a database request and renders the html. During that process several services are resolved, increasing the size of the scoped service dictionary.
Stack trace of allocations:
Name Inc %
Type Entry[Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceCacheKey,System.Object][] 7.8
+ coreclr!? 7.8
|+ System.Private.CoreLib.il!System.Collections.Generic.Dictionary`2[Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceCacheKey,System.__Canon].Resize(int32,bool) 7.8
||+ System.Private.CoreLib.il!System.Collections.Generic.Dictionary`2[Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceCacheKey,System.__Canon].TryInsert(!0,!1,value class System.Collections.Generic.InsertionBehavior) 7.8
|| + System.Private.CoreLib.il!System.Collections.Generic.Dictionary`2[Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceCacheKey,System.__Canon].Add(!0,!1) 7.8
|| + microsoft.extensions.dependencyinjection.il!dynamicClass.ResolveService(pMT: 00007FF84C1DFF08,pMT: 00007FF84C1D9B20) 7.8
|| + microsoft.extensions.dependencyinjection.il!dynamicClass.ResolveService(pMT: 00007FF84C1DFF08,pMT: 00007FF84C1D9B20) 7.8
|| + microsoft.extensions.dependencyinjection.abstractions.il!ServiceProviderServiceExtensions.GetRequiredService 4.8
|| |+ microsoft.extensions.dependencyinjection.abstractions.il!ServiceProviderServiceExtensions.GetRequiredService 4.8
|| | + orchardcore.displaymanagement.liquid!OrchardCore.DisplayManagement.Liquid.LiquidTemplateContextExtensions+<EnterScopeAsync>d__0.MoveNext() 4.5
And overall memory consumption:
Name Exc % ExcInc % Inc Fold When
?!? 8.66,57215.5 11,8571,7788389CDDoDCDFED9ECFFFDGGHFFE89DY*
e_sqlite3!? 4.03,088 6.1 4,7011,36762526767655664565557556565569535
microsoft.extensions.dependencyinjection.il!dynamicClass.ResolveService(pMT: 00007FF84C1DFF08,pMT: 00007FF84C1D9B20) 2.92,217 5.4 4,1341,907105o556655665546566567566564630o
orchardcore.displaymanagement!OrchardCore.DisplayManagement.Implementation.DefaultHtmlDisplay+<ExecuteAsync>d__7.MoveNext() 2.72,09728.1 21,4691,95400N5WWXVWVVVWSOXUWWXXVWXWWXRWN9.
orchardcore.contentmanagement.display!OrchardCore.ContentManagement.Display.ContentItemDisplayCoordinator+<BuildDisplayAsync>d__9.MoveNext() 2.31,74910.0 7,6481,6760_81BCABBBABB99CBBACBABBBCCBD92_
System.Private.CoreLib.il!AsyncMethodBuilderCore.Start 2.21,69071.9 54,9611,42801****************************3_
orchardcore.displaymanagement!OrchardCore.DisplayManagement.Views.ShapeResult+<ApplyImplementationAsync>d__17.MoveNext() 2.01,540 5.2 4,0081,4130o40665656555446655655656666741_
orchardcore.displaymanagement.liquid!OrchardCore.DisplayManagement.Liquid.Tags.HelperStatement+<WriteToAsync>d__4.MoveNext() 1.91,47413.0 9,9651,38200A3FGFFEEEEEDBGEEEFEEEFFGGCDA51
ntoskrnl!RtlpLookupFunctionEntryForStackWalks 1.91,437 1.9 1,437 242__o012222223221122222o222220____
orchardcore.displaymanagement.liquid!LiquidTagHelperActivator.Create 1.91,428 2.3 1,7831,3710o202222222222132232222233222110
This issue is just to raise some concern, and maybe there is nothing better to be done.
Metadata
Metadata
Assignees
Labels
area-Extensions-DependencyInjectiontenet-performancePerformance related issuePerformance related issue