Re: Speed improvement using compile time generated proxies

"Fabio Maulo" <[email protected]> Wed, 3 Sep 2008 19:33:11 -0300
Newsgroups gmane.comp.windows.dotnet.nhibernate.devel
Message-ID <[email protected]>
--===============1404925860==
Content-Type: multipart/alternative; 
	boundary="----=_Part_24659_3504638.1220481191945"

------=_Part_24659_3504638.1220481191945
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

Do you can send me the solution with all your sources and required external
lib ?Thanks.

2008/9/3 Johan Kirsten <[email protected]>

>  Greetings
>
> There was a request for benchmark numbers regarding the performance
> increase. I have performed my tests using the following configuration:
>
> Pentium 4 2.4 GHz
> 1 GB RAM
> Win XP Pro SP 3
> VS 2005
> NET 2.0
> MS SQL Server 2000
> Ran in debug mode
> The nhibernate proxy generator by WC Pierce (
> http://code.google.com/p/nhibernateproxygenerator/)
> NHibernate 2.0 (the nhibernate proxy generator requires NH 2.0 because it
> needs to set the proxyfactoryfactory)
>
> I ran my tests by loading 5 different types from the db. For each type I
> loaded the top 100 in the table.
> I documented the times in milliseconds. The most important difference
> between each type is the number of contained objects (and therefore foreign
> keys). I have also documented this.
>
>    Using run time proxies   Type FK Run 1 Run 2 Run 3 Average 1 0 203 203
> 187 198 2 1 328 328 422 359 3 2 406 407 562 458 4 3 500 703 422 542 5 3
> 547 484 578 536     Compile time proxies   Type FK Run 1 Run 2 Run 3
> Average 1 0 188 218 172 193 2 1 78 47 63 63 3 2 62 78 78 73 4 3 78 63 78
> 73 5 3 78 94 125 99     Difference    Type FK % reduction Calculation  1 0
> -3% = (193 - 198)/198 2 1 -83% = (63 - 359)/359 3 2 -84% = (73 - 458)/458
> 4 3 -87% = (73 - 542)/542 5 3 -82% = (99 - 536)/536
> For classes with contained objects (fk's) a reduction in process time of
> approx 80%
> e.g. a load time of 5 seconds can be reduced to 1 second for a list of
> complex objects
> No significant improvement in classes without contained objects (fk's)
>
> It is also important to realise that these are speed improvements on NH
> 2.0. I suspect that the new Dynamic Proxy used by NH 2.0 also has its own
> optimization. Therefore if you are coming from NH 1.2.1 I suspect you will
> get an even greater improvement, but this is not confirmed
>
> Johan Kirsten
>
> -------------------------------------------------------------------------
> 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=/
> _______________________________________________
> Nhibernate-development mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/nhibernate-development
>
>


-- 
Fabio Maulo

------=_Part_24659_3504638.1220481191945
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

<div dir="ltr">Do you can send me the solution with all your sources and required external lib ?<div>Thanks.<br><br><div class="gmail_quote">2008/9/3 Johan Kirsten <span dir="ltr">&lt;<a href="mailto:[email protected]">[email protected]</a>&gt;</span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">





<div bgcolor="#ffffff">
<div><font face="Arial" size="2">Greetings</font></div>
<div><font face="Arial" size="2"></font>&nbsp;</div>
<div><font face="Arial" size="2">There was a request for benchmark numbers regarding 
the performance increase. I have performed my tests using the following 
configuration:</font></div>
<div><font face="Arial" size="2"></font>&nbsp;</div>
<div><font face="Arial" size="2">Pentium 4 2.4 GHz<br>1 GB RAM<br>Win XP Pro SP 
3<br>VS 2005<br>NET 2.0<br>MS SQL Server 2000 <br>Ran in debug mode<br>The 
nhibernate proxy generator by WC Pierce (<a href="http://code.google.com/p/nhibernateproxygenerator/" target="_blank">http://code.google.com/p/nhibernateproxygenerator/</a>)<br>NHibernate 
2.0 (the nhibernate proxy generator requires NH 2.0 because it needs to set the 
proxyfactoryfactory)</font></div>
<div>&nbsp;</div>
<div><font face="Arial" size="2">I ran my tests by loading 5 different types from 
the db. For each type I loaded the top 100 in the table.<br>I documented the 
times in milliseconds. The most important difference between each type is the 
number of contained objects (and therefore foreign keys). I have also documented 
this.</font></div>
<div><font face="Arial" size="2"><br>
<table style="width:288pt;border-collapse:collapse" cellspacing="0" cellpadding="0" width="384" border="0">
  <colgroup>
  <col style="width:48pt" span="6" width="64">
  </colgroup><tbody>
  <tr style="height:12.75pt" height="17">
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;width:144pt;border-bottom:#e0dfe3;height:12.75pt;background-color:transparent" width="192" colspan="3" height="17"><font size="2">Using run time 
proxies</font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;width:48pt;border-bottom:#e0dfe3;background-color:transparent" width="64"><font size="2"></font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;width:48pt;border-bottom:#e0dfe3;background-color:transparent" width="64"><font size="2"></font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;width:48pt;border-bottom:#e0dfe3;background-color:transparent" width="64"><font size="2"></font></td></tr>
  <tr style="height:12.75pt" height="17">
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;height:12.75pt;background-color:transparent" height="17"><font size="2">Type</font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2">FK</font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2">Run 1</font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2">Run 2</font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2">Run 3</font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2">Average</font></td></tr>
  <tr style="height:12.75pt" height="17">
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;height:12.75pt;background-color:transparent" height="17"><font size="2">1</font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2">0</font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2">203</font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2">203</font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2">187</font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2">198</font></td></tr>
  <tr style="height:12.75pt" height="17">
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;height:12.75pt;background-color:transparent" height="17"><font size="2">2</font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2">1</font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2">328</font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2">328</font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2">422</font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2">359</font></td></tr>
  <tr style="height:12.75pt" height="17">
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;height:12.75pt;background-color:transparent" height="17"><font size="2">3</font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2">2</font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2">406</font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2">407</font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2">562</font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2">458</font></td></tr>
  <tr style="height:12.75pt" height="17">
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;height:12.75pt;background-color:transparent" height="17"><font size="2">4</font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2">3</font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2">500</font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2">703</font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2">422</font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2">542</font></td></tr>
  <tr style="height:12.75pt" height="17">
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;height:12.75pt;background-color:transparent" height="17"><font size="2">5</font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2">3</font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2">547</font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2">484</font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2">578</font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2">536</font></td></tr>
  <tr style="height:12.75pt" height="17">
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;height:12.75pt;background-color:transparent" height="17"><font size="2"></font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2"></font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2"></font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2"></font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2"></font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2"></font></td></tr>
  <tr style="height:12.75pt" height="17">
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;height:12.75pt;background-color:transparent" colspan="2" height="17"><font size="2">Compile time proxies</font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2"></font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2"></font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2"></font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2"></font></td></tr>
  <tr style="height:12.75pt" height="17">
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;height:12.75pt;background-color:transparent" height="17"><font size="2">Type</font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2">FK</font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2">Run 1</font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2">Run 2</font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2">Run 3</font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2">Average</font></td></tr>
  <tr style="height:12.75pt" height="17">
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;height:12.75pt;background-color:transparent" height="17"><font size="2">1</font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2">0</font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2">188</font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2">218</font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2">172</font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2">193</font></td></tr>
  <tr style="height:12.75pt" height="17">
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;height:12.75pt;background-color:transparent" height="17"><font size="2">2</font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2">1</font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2">78</font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2">47</font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2">63</font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2">63</font></td></tr>
  <tr style="height:12.75pt" height="17">
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;height:12.75pt;background-color:transparent" height="17"><font size="2">3</font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2">2</font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2">62</font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2">78</font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2">78</font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2">73</font></td></tr>
  <tr style="height:12.75pt" height="17">
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;height:12.75pt;background-color:transparent" height="17"><font size="2">4</font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2">3</font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2">78</font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2">63</font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2">78</font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2">73</font></td></tr>
  <tr style="height:12.75pt" height="17">
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;height:12.75pt;background-color:transparent" height="17"><font size="2">5</font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2">3</font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2">78</font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2">94</font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2">125</font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2">99</font></td></tr>
  <tr style="height:12.75pt" height="17">
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;height:12.75pt;background-color:transparent" height="17"><font size="2"></font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2"></font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2"></font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2"></font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2"></font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2"></font></td></tr>
  <tr style="height:12.75pt" height="17">
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;height:12.75pt;background-color:transparent" height="17"><font size="2">Difference</font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2"></font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2"></font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2"></font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2"></font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2"></font></td></tr>
  <tr style="height:12.75pt" height="17">
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;height:12.75pt;background-color:transparent" height="17"><font size="2">Type</font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2">FK</font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2">% reduction</font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent" colspan="2"><font size="2">Calculation</font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2"></font></td></tr>
  <tr style="height:12.75pt" height="17">
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;height:12.75pt;background-color:transparent" height="17"><font size="2">1</font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2">0</font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2">-3%</font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2"></font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent" colspan="2"><font size="2">= (193 - 
    198)/198</font></td></tr>
  <tr style="height:12.75pt" height="17">
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;height:12.75pt;background-color:transparent" height="17"><font size="2">2</font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2">1</font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2">-83%</font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2"></font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent" colspan="2"><font size="2">= (63 - 
  359)/359</font></td></tr>
  <tr style="height:12.75pt" height="17">
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;height:12.75pt;background-color:transparent" height="17"><font size="2">3</font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2">2</font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2">-84%</font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2"></font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent" colspan="2"><font size="2">= (73 - 
  458)/458</font></td></tr>
  <tr style="height:12.75pt" height="17">
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;height:12.75pt;background-color:transparent" height="17"><font size="2">4</font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2">3</font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2">-87%</font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2"></font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent" colspan="2"><font size="2">= (73 - 
  542)/542</font></td></tr>
  <tr style="height:12.75pt" height="17">
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;height:12.75pt;background-color:transparent" height="17"><font size="2">5</font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2">3</font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2">-82%</font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent"><font size="2"></font></td>
    <td style="border-right:#e0dfe3;border-top:#e0dfe3;border-left:#e0dfe3;border-bottom:#e0dfe3;background-color:transparent" colspan="2"><font size="2">= (99 - 
  536)/536</font></td></tr></tbody></table><br></font><font face="Arial" size="2">For 
classes with contained objects (fk&#39;s) a reduction in process time of approx 
80%<br>e.g. a load time of 5 seconds can be reduced to 1 second for a list of 
complex objects<br>No significant improvement in classes without contained 
objects (fk&#39;s)</font></div>
<div><font face="Arial" size="2"></font>&nbsp;</div>
<div><font face="Arial" size="2">It is also important to realise that these are 
speed improvements on NH 2.0. I suspect that the new Dynamic Proxy used by NH 
2.0 also has its own optimization. Therefore if you are coming from NH 1.2.1 I 
suspect you will get an even greater improvement, but this is not 
confirmed</font></div>
<div><font face="Arial" size="2"></font>&nbsp;</div><font color="#888888">
<div><font face="Arial" size="2">Johan Kirsten</font></div></font></div>
<br>-------------------------------------------------------------------------<br>
This SF.Net email is sponsored by the Moblin Your Move Developer&#39;s challenge<br>
Build the coolest Linux based applications with Moblin SDK &amp; win great prizes<br>
Grand prize is a trip for two to an Open Source event anywhere in the world<br>
<a href="http://moblin-contest.org/redirect.php?banner_id=100&amp;url=/" target="_blank">http://moblin-contest.org/redirect.php?banner_id=100&amp;url=/</a><br>_______________________________________________<br>
Nhibernate-development mailing list<br>
<a href="mailto:[email protected]">[email protected]</a><br>
<a href="https://lists.sourceforge.net/lists/listinfo/nhibernate-development" target="_blank">https://lists.sourceforge.net/lists/listinfo/nhibernate-development</a><br>
<br></blockquote></div><br><br clear="all"><br>-- <br>Fabio Maulo<br>
</div></div>

------=_Part_24659_3504638.1220481191945--


--===============1404925860==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

-------------------------------------------------------------------------
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=/
--===============1404925860==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Nhibernate-development mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/nhibernate-development

--===============1404925860==--