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.&nbsp; I remember there was some =
testing done
a while back but I&#8217;m not&nbsp; sure if there issues were resolved. =
I don&#8217;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>&nbsp;</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>&nbsp;</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'>&nbsp;<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'>&nbsp;<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'>&nbsp;<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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&nbsp;</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'>&nbsp;<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'>&nbsp;<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==--