Thanks Ken, I will take a look at it this week.
craig On Sun, Jan 31, 2010 at 3:35 AM, Ken Egozi <[email protected]> wrote: > Hi guys. > > I came across a few performance problems when rendering views in one of our > applications. > dotTracing into the problem, I managed to identify a few problems internal > to AspView which I will commit to the codbase. > However, one of the main problems are with AspView's usage of the > DictionaryAdapterFactory. > > The view engine creates a typed-adapter for each view instance. We have a > few pages which renders hundreds of sub views, and the amount of calls to > factory.GetAdapter<IView>(properties) costs a significant amount of the > rendering time. > > Looking at GetAdapter() call, I saw that when asking for an adapter over an > interface that was already requested before, it is true that we do not > re-generate the type and the assembly, but we still do a pricey lookup for > the exact Type from all of the dynamically loaded assemblies. > I introduced a Dictionary<Type,Type>, that will cache the adapter type for > each interface, making consecutive calls *much* faster. > > The attached test case when (on my machine) from 16ms to 3ms. > > Attached also is the change patch. > > For all of you IDictAdapter people, please revise the patch. > > Should this change be incorporated into the DictionaryAdapter, there will > be some more cleanup we'll be able to do (such as the AssemblyName to > Assembly cache that is not needed anymore) > > > > > > > -- > Ken Egozi. > http://www.kenegozi.com/blog > http://www.delver.com > http://www.musicglue.com > http://www.castleproject.org > http://www.idcc.co.il - הכנס הקהילתי הראשון למפתחי דוטנט - בואו בהמוניכם > > -- > You received this message because you are subscribed to the Google Groups > "Castle Project Development List" group. > To post to this group, send email to [email protected] > . > To unsubscribe from this group, send email to > [email protected]<castle-project-devel%[email protected]> > . > For more options, visit this group at > http://groups.google.com/group/castle-project-devel?hl=en. > -- You received this message because you are subscribed to the Google Groups "Castle Project Development List" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/castle-project-devel?hl=en.
