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'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"><<a href="mailto:[email protected]">[email protected]</a>></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"><<a href="mailto:[email protected]" target="_blank">[email protected]</a>></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> </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> </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> </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'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's)</font></div> <div><font face="Arial" size="2"></font> </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> </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's challenge<br> Build the coolest Linux based applications with Moblin SDK & 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&url=/" target="_blank">http://moblin-contest.org/redirect.php?banner_id=100&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==--