Thanks Krzysztof.

2009/8/10 Krzysztof Koźmic <[email protected]>

>
> Hey,
>
> This is actually not a Castle Dynamic Proxy issue per se. That's a
> result of... BCL's unfortunate implementation of algorithm that looks
> for name collisions in generated assembly. The algorithm is not linear,
> so you see the performance decrease you described, as there are more and
> more types in the assembly. I created a connect ticket for that
>
> https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=472622&wa=wsignin1.0
> In Mono this is probably implemented better, since as you described
> there is no perf degradation.
> Please vote for it, to show Microsoft that this is a serious issue.
>
> Now, LinFu creates a new assembly for each new proxy type it generates
> so it does not take that performance hit.
> There are two things you can do to improve this situation, provided
> these are viable options in your scenario:
> - try to take advantage of caching.
> - if you create the same proxy types each time you run the application,
> create them once, and save the assembly to disk. On subsequent runs,
> load the proxy types from disk, so you don't take the performance hit.
>
> Also when choosing one, be it Castle, LinFu, Spring or any other,
> consider not only the time it takes to generate your proxies, but also
> other performance implications - memory footprint, runtime performance etc.
> I created a small benchmark for runtime performance some time ago:
>
> http://kozmic.pl/archive/0001/01/01/dynamic-proxy-frameworks-comparison-update.aspx
>
> You may find it useful.
>
> If you have any followup questions, please describe your scenario in
> more details on Castle group, and we'll see if there's anything we could
> do to improve it.
>
> cheers,
>
> Krzysztof
>
> srf wrote:
> > Well I finished running our integration tests and with linfu the tests
> > took 900 seconds and with castle it took 1800 seconds so there is
> > definatly some nasty stuff going on with castle . It all seems to be
> > just with the typebuilder and proxying since creating and saving is
> > the same with both proxies but the load tests take a big hit with the
> > castle proxy compared to linfu. So far I ran all our tests and
> > integration tests and application tests with linfu and all seems good
> > so Im hoping to go with that if nothing else comes up since  the
> > performance hit in castle is just too much. This proxy plugin
> > architecture in nhibernate was quite the lifesaver.
> >
> > thanks
> >
> > scott
> >
> > On Aug 10, 9:37 am, Fabio Maulo <[email protected]> wrote:
> >
> >> Somebody pointed us to the same problem we the same solution in
> >> uNhAddIns.Personally
> >> I saw some difference, in production, in a stress-tests (usage of CPU)
> but
> >> I'm not completely sure that the problem was only LinFu DynamicProxy.
> >> The real problem of LinFu, IMO, is this:
> http://code.google.com/p/linfu/people/list
> >>
> >> <http://code.google.com/p/linfu/people/list>Try to think which is the
> >> problem.
> >>
> >> 2009/8/10 srf <[email protected]>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>> Moving to nhibernate 2.1 from 1.2 I noticed a performance problem
> >>> doing proxying and I ended up noticing that castle dynamic proxy uses
> >>> the .net Type builder and the type build seems to have a bug where its
> >>> gets prgressivly slower the more types created. We have 300 different
> >>> types in our domain model and it would proxy 100 types pretty fast but
> >>> by the time it proxys the 200th type , the Type builder was taking
> >>> over 10 seconds to create a new type. We also run under mono and it
> >>> actually runs a lot faster since it doesnt have this same performance
> >>> problem. Maybe microsoft should see what the mono people are doing to
> >>> help with that.
> >>> At any rate, I switch to using LinFu and it had none of these
> >>> performance problems as was way faster and so far everything seems to
> >>> work so I was thinking of just switching our production environment to
> >>> use linfu but was wondering if others use linfu in production with
> >>> nhibernate and if anyone has had any problems with it?
> >>>
> >>> thanks
> >>>
> >>> scott
> >>>
> >> --
> >> Fabio Maulo- Hide quoted text -
> >>
> >> - Show quoted text -
> >>
> > >
> >
>
>
> >
>


-- 
Fabio Maulo

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"nhusers" 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/nhusers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to