We have run into a little performance issue in CMS v.10.10.1 and Commerce v11.2.0.
For some reason we get periods with a very high miss rate for the cache, if it is caused by an import or just premature eviction because of some other reason we don't know yet.
During these periods we have noticed that our menu construction creates a lot of database traffic specifically our calls to IContentLoader.GetChildren<NodeContent>(contentReference), which doesn't just load all the node children from the database but also all the entry children(for some nodes this is over 3k)!
Looking into the DefaultContentLoader and sub-implementations it appears that it boils down to ContentProvider.TryGetChildren<T> calling CatalogContentProvider.LoadChildrenReferencesAndTypes without supplying the type, which since it doesn't know what type we are asking for loads both nodes and entries.
Does anyone know if this have been addressed in any future version?
Foolishly i had thought that supplying a content type T would result in a query for what content type id T has (cached of course) and that id would be used as a parameter for the database calls to avoid fetching all content regardless of type. Yes i know it only loads the content references and not the entire content, but still why doesn't it work like that?