Re: Speed improvement using compile timegenerated proxies
"Jesse Napier" <[email protected]> Wed, 3 Sep 2008 22:01:06 -0700
| Newsgroups | gmane.comp.windows.dotnet.nhibernate.devel |
|---|---|
| Message-ID | <ADDDC70391998C4887386EB544F2600202A4A6BA@gfexchange01.gfhome.gamefly.com> |
This is a multi-part message in MIME format. --===============0050653312== Content-class: urn:content-classes:message Content-Type: multipart/alternative; boundary="----_=_NextPart_001_01C90E4B.3D0E8F09" This is a multi-part message in MIME format. ------_=_NextPart_001_01C90E4B.3D0E8F09 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable As far as I know the performance of NHibernate got drastically slower in version 2.0. I remember there was some testing done a while back but I'm not sure if there issues were resolved. I don't think the slow down was due to dynamic proxy. =20 ________________________________ From: [email protected] [mailto:[email protected]] On Behalf Of Johan Kirsten Sent: Wednesday, September 03, 2008 2:54 PM To: [email protected] Subject: [NHibernate-development] Speed improvement using compile timegenerated proxies =20 Greetings =20 There was a request for benchmark numbers regarding the performance increase. I have performed my tests using the following configuration: =20 Pentium 4 2.4 GHz 1 GB RAM Win XP Pro SP 3 VS 2005 NET 2.0 MS SQL Server 2000=20 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) =20 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. =20 Using run time proxies =20 =20 =20 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 =20 =20 =20 =20 =20 =20 Compile time proxies =20 =20 =20 =20 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 =20 =20 =20 =20 =20 =20 Difference =20 =20 =20 =20 =20 Type FK % reduction Calculation =20 1 0 -3% =20 =3D (193 - 198)/198 2 1 -83% =20 =3D (63 - 359)/359 3 2 -84% =20 =3D (73 - 458)/458 4 3 -87% =20 =3D (73 - 542)/542 5 3 -82% =20 =3D (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) =20 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 =20 Johan Kirsten ------_=_NextPart_001_01C90E4B.3D0E8F09 Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable <html xmlns:v=3D"urn:schemas-microsoft-com:vml" = xmlns:o=3D"urn:schemas-microsoft-com:office:office" = xmlns:w=3D"urn:schemas-microsoft-com:office:word" = xmlns=3D"http://www.w3.org/TR/REC-html40"> <head> <META HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; = charset=3Dus-ascii"> <meta name=3DGenerator content=3D"Microsoft Word 11 (filtered medium)"> <!--[if !mso]> <style> v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VML);} .shape {behavior:url(#default#VML);} </style> <![endif]--> <style> <!-- /* Font Definitions */ @font-face {font-family:Tahoma; panose-1:2 11 6 4 3 5 4 4 2 4;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {margin:0in; margin-bottom:.0001pt; font-size:12.0pt; font-family:"Times New Roman";} a:link, span.MsoHyperlink {color:blue; text-decoration:underline;} a:visited, span.MsoHyperlinkFollowed {color:blue; text-decoration:underline;} span.EmailStyle17 {mso-style-type:personal-reply; font-family:Arial; color:navy;} @page Section1 {size:8.5in 11.0in; margin:1.0in 1.25in 1.0in 1.25in;} div.Section1 {page:Section1;} --> </style> <!--[if gte mso 9]><xml> <o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" /> </xml><![endif]--><!--[if gte mso 9]><xml> <o:shapelayout v:ext=3D"edit"> <o:idmap v:ext=3D"edit" data=3D"1" /> </o:shapelayout></xml><![endif]--> </head> <body bgcolor=3Dwhite lang=3DEN-US link=3Dblue vlink=3Dblue> <div class=3DSection1> <p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span = style=3D'font-size: 10.0pt;font-family:Arial;color:navy'>As far as I know the performance of = NHibernate got drastically slower in version 2.0. I remember there was some = testing done a while back but I’m not sure if there issues were resolved. = I don’t think the slow down was due to dynamic = proxy.<o:p></o:p></span></font></p> <p class=3DMsoNormal><font size=3D2 color=3Dnavy face=3DArial><span = style=3D'font-size: 10.0pt;font-family:Arial;color:navy'><o:p> </o:p></span></font></p> <div> <div class=3DMsoNormal align=3Dcenter style=3D'text-align:center'><font = size=3D3 face=3D"Times New Roman"><span style=3D'font-size:12.0pt'> <hr size=3D2 width=3D"100%" align=3Dcenter tabindex=3D-1> </span></font></div> <p class=3DMsoNormal><b><font size=3D2 face=3DTahoma><span = style=3D'font-size:10.0pt; font-family:Tahoma;font-weight:bold'>From:</span></font></b><font = size=3D2 face=3DTahoma><span style=3D'font-size:10.0pt;font-family:Tahoma'> [email protected] [mailto:[email protected]] <b><span style=3D'font-weight:bold'>On Behalf Of </span></b>Johan Kirsten<br> <b><span style=3D'font-weight:bold'>Sent:</span></b> Wednesday, = September 03, 2008 2:54 PM<br> <b><span style=3D'font-weight:bold'>To:</span></b> [email protected]<br> <b><span style=3D'font-weight:bold'>Subject:</span></b> = [NHibernate-development] Speed improvement using compile timegenerated = proxies</span></font><o:p></o:p></p> </div> <p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span = style=3D'font-size: 12.0pt'><o:p> </o:p></span></font></p> <div> <p class=3DMsoNormal><font size=3D2 face=3DArial><span = style=3D'font-size:10.0pt; font-family:Arial'>Greetings</span></font><o:p></o:p></p> </div> <div> <p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span = style=3D'font-size: 12.0pt'> <o:p></o:p></span></font></p> </div> <div> <p class=3DMsoNormal><font size=3D2 face=3DArial><span = style=3D'font-size:10.0pt; font-family:Arial'>There was a request for benchmark numbers regarding = the performance increase. I have performed my tests using the following configuration:</span></font><o:p></o:p></p> </div> <div> <p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span = style=3D'font-size: 12.0pt'> <o:p></o:p></span></font></p> </div> <div> <p class=3DMsoNormal><font size=3D2 face=3DArial><span = style=3D'font-size:10.0pt; font-family:Arial'>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=3D"http://code.google.com/p/nhibernateproxygenerator/">http://code.g= oogle.com/p/nhibernateproxygenerator/</a>)<br> NHibernate 2.0 (the nhibernate proxy generator requires NH 2.0 because = it needs to set the proxyfactoryfactory)</span></font><o:p></o:p></p> </div> <div> <p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span = style=3D'font-size: 12.0pt'> <o:p></o:p></span></font></p> </div> <div> <p class=3DMsoNormal><font size=3D2 face=3DArial><span = style=3D'font-size:10.0pt; font-family:Arial'>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.</span></font><o:p></o:p></p> </div> <div> <p class=3DMsoNormal><font size=3D2 face=3DArial><span = style=3D'font-size:10.0pt; font-family:Arial'><o:p> </o:p></span></font></p> <table class=3DMsoNormalTable border=3D0 cellspacing=3D0 cellpadding=3D0 = width=3D384 style=3D'width:4.0in;border-collapse:collapse' u1:str> <COLGROUP><COL style=3D"WIDTH: 48pt" span=3D6 width=3D64> <tr height=3D17 style=3D'height:12.75pt'> <td width=3D192 colspan=3D3 height=3D17 = style=3D'width:2.0in;padding:0in 0in 0in 0in; height:12.75pt'> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>Using run time = proxies</span></font><o:p></o:p></p> </td> <td width=3D64 height=3D17 style=3D'width:48.0pt;padding:0in 0in 0in = 0in; height:12.75pt'> <p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span style=3D'font-size:12.0pt'><o:p> </o:p></span></font></p> </td> <td width=3D64 height=3D17 style=3D'width:48.0pt;padding:0in 0in 0in = 0in; height:12.75pt'> <p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span style=3D'font-size:12.0pt'><o:p> </o:p></span></font></p> </td> <td width=3D64 height=3D17 style=3D'width:48.0pt;padding:0in 0in 0in = 0in; height:12.75pt'> <p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span style=3D'font-size:12.0pt'><o:p> </o:p></span></font></p> </td> </tr> <tr height=3D17 style=3D'height:12.75pt'> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt'> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>Type</span></font><o:p></o:p></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt'> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>FK</span></font><o:p></o:p></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt'> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>Run 1</span></font><o:p></o:p></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt'> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>Run 2</span></font><o:p></o:p></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt'> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>Run 3</span></font><o:p></o:p></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt'> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>Average</span></font><o:p></o:p></p> </td> </tr> <tr height=3D17 style=3D'height:12.75pt'> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt' = u1:num> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>1</span></font><o:p></o:p></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt' = u1:num> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>0</span></font><o:p></o:p></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt' = u1:num> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>203</span></font><o:p></o:p></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt' = u1:num> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>203</span></font><o:p></o:p></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt' = u1:num> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>187</span></font><o:p></o:p></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt' = u1:num> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>198</span></font><o:p></o:p></p> </td> </tr> <tr height=3D17 style=3D'height:12.75pt'> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt' = u1:num> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>2</span></font><o:p></o:p></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt' = u1:num> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>1</span></font><o:p></o:p></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt' = u1:num> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>328</span></font><o:p></o:p></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt' = u1:num> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>328</span></font><o:p></o:p></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt' = u1:num> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>422</span></font><o:p></o:p></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt' = u1:num> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>359</span></font><o:p></o:p></p> </td> </tr> <tr height=3D17 style=3D'height:12.75pt'> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt' = u1:num> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>3</span></font><o:p></o:p></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt' = u1:num> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>2</span></font><o:p></o:p></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt' = u1:num> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>406</span></font><o:p></o:p></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt' = u1:num> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>407</span></font><o:p></o:p></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt' = u1:num> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>562</span></font><o:p></o:p></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt' = u1:num> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>458</span></font><o:p></o:p></p> </td> </tr> <tr height=3D17 style=3D'height:12.75pt'> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt' = u1:num> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>4</span></font><o:p></o:p></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt' = u1:num> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>3</span></font><o:p></o:p></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt' = u1:num> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>500</span></font><o:p></o:p></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt' = u1:num> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>703</span></font><o:p></o:p></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt' = u1:num> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>422</span></font><o:p></o:p></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt' = u1:num> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>542</span></font><o:p></o:p></p> </td> </tr> <tr height=3D17 style=3D'height:12.75pt'> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt' = u1:num> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>5</span></font><o:p></o:p></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt' = u1:num> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>3</span></font><o:p></o:p></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt' = u1:num> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>547</span></font><o:p></o:p></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt' = u1:num> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>484</span></font><o:p></o:p></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt' = u1:num> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>578</span></font><o:p></o:p></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt' = u1:num> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>536</span></font><o:p></o:p></p> </td> </tr> <tr height=3D17 style=3D'height:12.75pt'> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt'> <p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span style=3D'font-size:12.0pt'><o:p> </o:p></span></font></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt'> <p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span style=3D'font-size:12.0pt'><o:p> </o:p></span></font></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt'> <p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span style=3D'font-size:12.0pt'><o:p> </o:p></span></font></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt'> <p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span style=3D'font-size:12.0pt'><o:p> </o:p></span></font></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt'> <p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span style=3D'font-size:12.0pt'><o:p> </o:p></span></font></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt'> <p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span style=3D'font-size:12.0pt'><o:p> </o:p></span></font></p> </td> </tr> <tr height=3D17 style=3D'height:12.75pt'> <td colspan=3D2 height=3D17 style=3D'padding:0in 0in 0in = 0in;height:12.75pt'> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>Compile time = proxies</span></font><o:p></o:p></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt'> <p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span style=3D'font-size:12.0pt'><o:p> </o:p></span></font></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt'> <p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span style=3D'font-size:12.0pt'><o:p> </o:p></span></font></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt'> <p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span style=3D'font-size:12.0pt'><o:p> </o:p></span></font></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt'> <p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span style=3D'font-size:12.0pt'><o:p> </o:p></span></font></p> </td> </tr> <tr height=3D17 style=3D'height:12.75pt'> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt'> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>Type</span></font><o:p></o:p></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt'> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>FK</span></font><o:p></o:p></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt'> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>Run 1</span></font><o:p></o:p></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt'> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>Run 2</span></font><o:p></o:p></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt'> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>Run 3</span></font><o:p></o:p></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt'> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>Average</span></font><o:p></o:p></p> </td> </tr> <tr height=3D17 style=3D'height:12.75pt'> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt' = u1:num> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>1</span></font><o:p></o:p></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt' = u1:num> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>0</span></font><o:p></o:p></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt' = u1:num> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>188</span></font><o:p></o:p></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt' = u1:num> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>218</span></font><o:p></o:p></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt' = u1:num> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>172</span></font><o:p></o:p></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt' = u1:num> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>193</span></font><o:p></o:p></p> </td> </tr> <tr height=3D17 style=3D'height:12.75pt'> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt' = u1:num> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>2</span></font><o:p></o:p></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt' = u1:num> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>1</span></font><o:p></o:p></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt' = u1:num> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>78</span></font><o:p></o:p></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt' = u1:num> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>47</span></font><o:p></o:p></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt' = u1:num> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>63</span></font><o:p></o:p></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt' = u1:num> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>63</span></font><o:p></o:p></p> </td> </tr> <tr height=3D17 style=3D'height:12.75pt'> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt' = u1:num> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>3</span></font><o:p></o:p></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt' = u1:num> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>2</span></font><o:p></o:p></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt' = u1:num> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>62</span></font><o:p></o:p></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt' = u1:num> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>78</span></font><o:p></o:p></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt' = u1:num> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>78</span></font><o:p></o:p></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt' = u1:num> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>73</span></font><o:p></o:p></p> </td> </tr> <tr height=3D17 style=3D'height:12.75pt'> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt' = u1:num> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>4</span></font><o:p></o:p></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt' = u1:num> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>3</span></font><o:p></o:p></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt' = u1:num> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>78</span></font><o:p></o:p></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt' = u1:num> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>63</span></font><o:p></o:p></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt' = u1:num> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>78</span></font><o:p></o:p></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt' = u1:num> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>73</span></font><o:p></o:p></p> </td> </tr> <tr height=3D17 style=3D'height:12.75pt'> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt' = u1:num> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>5</span></font><o:p></o:p></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt' = u1:num> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>3</span></font><o:p></o:p></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt' = u1:num> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>78</span></font><o:p></o:p></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt' = u1:num> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>94</span></font><o:p></o:p></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt' = u1:num> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>125</span></font><o:p></o:p></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt' = u1:num> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>99</span></font><o:p></o:p></p> </td> </tr> <tr height=3D17 style=3D'height:12.75pt'> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt'> <p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span style=3D'font-size:12.0pt'><o:p> </o:p></span></font></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt'> <p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span style=3D'font-size:12.0pt'><o:p> </o:p></span></font></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt'> <p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span style=3D'font-size:12.0pt'><o:p> </o:p></span></font></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt'> <p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span style=3D'font-size:12.0pt'><o:p> </o:p></span></font></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt'> <p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span style=3D'font-size:12.0pt'><o:p> </o:p></span></font></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt'> <p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span style=3D'font-size:12.0pt'><o:p> </o:p></span></font></p> </td> </tr> <tr height=3D17 style=3D'height:12.75pt'> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt'> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>Difference</span></font><o:p></o:p></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt'> <p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span style=3D'font-size:12.0pt'><o:p> </o:p></span></font></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt'> <p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span style=3D'font-size:12.0pt'><o:p> </o:p></span></font></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt'> <p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span style=3D'font-size:12.0pt'><o:p> </o:p></span></font></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt'> <p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span style=3D'font-size:12.0pt'><o:p> </o:p></span></font></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt'> <p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span style=3D'font-size:12.0pt'><o:p> </o:p></span></font></p> </td> </tr> <tr height=3D17 style=3D'height:12.75pt'> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt'> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>Type</span></font><o:p></o:p></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt'> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>FK</span></font><o:p></o:p></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt'> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>% reduction</span></font><o:p></o:p></p> </td> <td colspan=3D2 height=3D17 style=3D'padding:0in 0in 0in = 0in;height:12.75pt'> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>Calculation</span></font><o:p></o:p></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt'> <p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span style=3D'font-size:12.0pt'><o:p> </o:p></span></font></p> </td> </tr> <tr height=3D17 style=3D'height:12.75pt'> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt' = u1:num> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>1</span></font><o:p></o:p></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt' = u1:num> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>0</span></font><o:p></o:p></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt' = u1:num=3D"-0.03"> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>-3%</span></font><o:p></o:p></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt'> <p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span style=3D'font-size:12.0pt'><o:p> </o:p></span></font></p> </td> <td colspan=3D2 height=3D17 style=3D'padding:0in 0in 0in = 0in;height:12.75pt' u1:str=3D"'=3D (193 - 198)/198"> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>=3D (193 - = 198)/198</span></font><o:p></o:p></p> </td> </tr> <tr height=3D17 style=3D'height:12.75pt'> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt' = u1:num> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>2</span></font><o:p></o:p></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt' = u1:num> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>1</span></font><o:p></o:p></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt' = u1:num=3D"-0.83"> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>-83%</span></font><o:p></o:p></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt'> <p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span style=3D'font-size:12.0pt'><o:p> </o:p></span></font></p> </td> <td colspan=3D2 height=3D17 style=3D'padding:0in 0in 0in = 0in;height:12.75pt' u1:str=3D"'=3D (63 - 359)/359"> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>=3D (63 - = 359)/359</span></font><o:p></o:p></p> </td> </tr> <tr height=3D17 style=3D'height:12.75pt'> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt' = u1:num> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>3</span></font><o:p></o:p></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt' = u1:num> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>2</span></font><o:p></o:p></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt' = u1:num=3D"-0.84"> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>-84%</span></font><o:p></o:p></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt'> <p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span style=3D'font-size:12.0pt'><o:p> </o:p></span></font></p> </td> <td colspan=3D2 height=3D17 style=3D'padding:0in 0in 0in = 0in;height:12.75pt' u1:str=3D"'=3D (73 - 458)/458"> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>=3D (73 - = 458)/458</span></font><o:p></o:p></p> </td> </tr> <tr height=3D17 style=3D'height:12.75pt'> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt' = u1:num> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>4</span></font><o:p></o:p></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt' = u1:num> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>3</span></font><o:p></o:p></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt' = u1:num=3D"-0.87"> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>-87%</span></font><o:p></o:p></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt'> <p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span style=3D'font-size:12.0pt'><o:p> </o:p></span></font></p> </td> <td colspan=3D2 height=3D17 style=3D'padding:0in 0in 0in = 0in;height:12.75pt' u1:str=3D"'=3D (73 - 542)/542"> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>=3D (73 - = 542)/542</span></font><o:p></o:p></p> </td> </tr> <tr height=3D17 style=3D'height:12.75pt'> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt' = u1:num> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>5</span></font><o:p></o:p></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt' = u1:num> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>3</span></font><o:p></o:p></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt' = u1:num=3D"-0.82"> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>-82%</span></font><o:p></o:p></p> </td> <td height=3D17 style=3D'padding:0in 0in 0in 0in;height:12.75pt'> <p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span style=3D'font-size:12.0pt'><o:p> </o:p></span></font></p> </td> <td colspan=3D2 height=3D17 style=3D'padding:0in 0in 0in = 0in;height:12.75pt' u1:str=3D"'=3D (99 - 536)/536"> <p class=3DMsoNormal><font size=3D2 face=3D"Times New Roman"><span style=3D'font-size:10.0pt'>=3D (99 - = 536)/536</span></font><o:p></o:p></p> </td> </tr> </table> <p class=3DMsoNormal><font size=3D2 face=3DArial><span = style=3D'font-size:10.0pt; font-family:Arial'><br> 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)</span></font><o:p></o:p></p> </div> <div> <p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span = style=3D'font-size: 12.0pt'> <o:p></o:p></span></font></p> </div> <div> <p class=3DMsoNormal><font size=3D2 face=3DArial><span = style=3D'font-size:10.0pt; font-family:Arial'>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</span></font><o:p></o:p></p> </div> <div> <p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span = style=3D'font-size: 12.0pt'> <o:p></o:p></span></font></p> </div> <div> <p class=3DMsoNormal><font size=3D2 face=3DArial><span = style=3D'font-size:10.0pt; font-family:Arial'>Johan Kirsten</span></font><o:p></o:p></p> </div> </div> </body> </html> ------_=_NextPart_001_01C90E4B.3D0E8F09-- --===============0050653312== 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=/ --===============0050653312== 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 --===============0050653312==--