Re: Speed improvement using compile time generated proxies

"Fabio Maulo" <[email protected]> Wed, 3 Sep 2008 20:20:15 -0300
Newsgroups gmane.comp.windows.dotnet.nhibernate.devel
Message-ID <[email protected]>
--===============0703341981==
Content-Type: multipart/alternative; 
	boundary="----=_Part_24917_4138646.1220484015715"

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

And Johan please do it a soon as possible because soon we will release
NH2.0.0SP1 (or NH2.0.1 I'm not sure about it but this will be a matter of
another thread).

2008/9/3 Fabio Maulo <[email protected]>

> 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
>



-- 
Fabio Maulo

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

<div dir="ltr"><div>And Johan please do it a soon as possible because soon we will release NH2.0.0SP1 (or NH2.0.1 I&#39;m not sure about it but this will be a matter of another thread).</div><br><div class="gmail_quote">2008/9/3 Fabio Maulo <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 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]" target="_blank">[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><div></div><div class="Wj3C7c">





<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></div></div>-------------------------------------------------------------------------<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]" target="_blank">[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>
</blockquote></div><br><br clear="all"><br>-- <br>Fabio Maulo<br>
</div>

------=_Part_24917_4138646.1220484015715--


--===============0703341981==
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=/
--===============0703341981==
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

--===============0703341981==--