Re: Nhibernate-development Digest, Vol 28, Issue 8

"Johan Kirsten" <[email protected]> Thu, 4 Sep 2008 10:08:34 +0200
Newsgroups gmane.comp.windows.dotnet.nhibernate.devel
Message-ID <[email protected]>
Hi Andrew

Unfortunately the theory is different from the practice. I have investigated 
this matter 
(http://groups.google.com/group/nhibernate-development/browse_thread/thread/90b9e4feca7c3552)

Basically the problem is that NHibernate compiles the proxy each time and 
every time it needs to instantiate the proxy. i.e for each constructor call 
there is a preceding compilation of the proxy. It does not get cached. 
Please refer to the class NHibernate.Proxy.Poco.Castle.CastleProxyFactory.

Your options are:
1) change NHibernate.Proxy.Poco.Castle.CastleProxyFactory to cache its proxy 
type as in the link above
2) use compile time proxies.

If option 1 is used, then your theory is correct. I prefer to use compile 
time proxies as I want my users not to have unnecessary delays. The more I 
can move to compile time or start up the better. I tried to move the 
compilation of all my run time proxies to startup by altering 
NHibernate.Proxy.Poco.Castle.CastleProxyFactory, but that took too long and 
used a lot of memory. I have a complicated system with a lot of types. Hence 
I prefer compile time proxies. Other people might prefer option 1. I think 
people should be given a choice.

Best regards

Johan Kirsten

> ------------------------------
>
> Message: 2
> Date: Thu, 4 Sep 2008 11:39:24 +0400
> From: "Andrew Mayorov" <[email protected]>
> Subject: Re: [NHibernate-development] Speed improvement using compile
> time generated proxies
> To: "'the NHibernate development list'"
> <[email protected]>
> Message-ID: <037101c90e61$5dae9970$190bcc50$@com>
> Content-Type: text/plain; charset="us-ascii"
>
> Hi!
>
>
>
> Guys, can anyone explain why precompiled proxy could be faster than 
> runtime
> generated in real application? Proxy generation should be one time 
> operation
> for each type, and as soon as we've made a proxy for particular type there
> should be no difference in method of its creation. Yes, first query with
> precompiled proxy would execute faster, but all subsequent should have the
> same speed.
>
>
>
> Best,
>
> Andrew
>
>



-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/