actually, I've improved it further a bit. look at my fork: http://github.com/kenegozi/Castle.Components.DictionaryAdapter/commits/master <http://github.com/kenegozi/Castle.Components.DictionaryAdapter/commits/master>
On Mon, Feb 1, 2010 at 8:12 PM, Craig Neuwirt <[email protected]> wrote: > 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]<castle-project-devel%[email protected]> > . > For more options, visit this group at > http://groups.google.com/group/castle-project-devel?hl=en. > -- 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]. For more options, visit this group at http://groups.google.com/group/castle-project-devel?hl=en.
