<html> <head> <META http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Inherited Objects</title> <link rel="stylesheet" type="text/css" href="../../../../style.css"> </head> <body> <div class="CommonContent"> <div class="CommonContentArea"> <h1>Inherited Objects</h1><script> //We attach this function to a browser object as a variable so that if multiple of these blocks are //present on the same page, then they will simply over-write eachother with the same function instead //of generating a naming collision. window.WikiCodeFormattingCopyToClipboard = function copyToClipboard(sID){ var sContent = document.getElementById(sID).innerText; if( window.clipboardData && clipboardData.setData ) { clipboardData.setData("Text", sContent); } else { alert("You must enable javascript access to your clipboard for this feature to work. Please referr to your browser documentation or Google search for instructions."); } } </script> <p>Inherited objects are stored slower than simple objects. That is happening, because parent class indexes are created and stored to the database as well.</p> <p>The following example shows the influence of a simple inheritance on the insert performance: </p> <span name="cs_wiki_filter" csw_filters="net"> <div class="FormattedSourceCode"><div class="fscHeader"><span class="fscFileName">InsertPerformanceBenchmark.cs: <span class="fscMemberName">RunInheritanceTest</span></span></div><div class="fscCode"><pre ID="..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_RunInheritanceTest_328_83"><div><!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --><span style="color: #008080;">01</span><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/None.gif" align="top"/><span style="color: #0000FF;">private</span><span style="color: #000000;"> </span><span style="color: #0000FF;">void</span><span style="color: #000000;"> RunInheritanceTest() </span><span style="color: #008080;">02</span><span style="color: #000000;"><img id="..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_RunInheritanceTest_328_83_42_466_Open_Image" src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/ExpandedBlockStart.gif" align="top" onClick="this.style.display='none'; document.getElementById('..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_RunInheritanceTest_328_83_42_466_Open_Text').style.display='none'; document.getElementById('..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_RunInheritanceTest_328_83_42_466_Closed_Image').style.display='inline'; document.getElementById('..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_RunInheritanceTest_328_83_42_466_Closed_Text').style.display='inline';"/><img id="..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_RunInheritanceTest_328_83_42_466_Closed_Image" src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/ContractedBlock.gif" align="top" style="display: none;" onClick="this.style.display='none'; document.getElementById('..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_RunInheritanceTest_328_83_42_466_Closed_Text').style.display='none'; document.getElementById('..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_RunInheritanceTest_328_83_42_466_Open_Image').style.display='inline'; document.getElementById('..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_RunInheritanceTest_328_83_42_466_Open_Text').style.display='inline';"/> </span><span id="..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_RunInheritanceTest_328_83_42_466_Closed_Text" style="border: solid 1px #808080; background-color: #FFFFFF; display: none;">...</span><span id="..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_RunInheritanceTest_328_83_42_466_Open_Text"><span style="color: #000000;">{ </span><span style="color: #008080;">03</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/> Configure(); </span><span style="color: #008080;">04</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/> Init(); </span><span style="color: #008080;">05</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/> Clean(); </span><span style="color: #008080;">06</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/> System.Console.WriteLine(</span><span style="color: #800000;">"</span><span style="color: #800000;">Storing </span><span style="color: #800000;">"</span><span style="color: #000000;"> </span><span style="color: #000000;">+</span><span style="color: #000000;"> _count </span><span style="color: #000000;">+</span><span style="color: #000000;"> </span><span style="color: #800000;">"</span><span style="color: #800000;"> objects of depth </span><span style="color: #800000;">"</span><span style="color: #000000;"> </span><span style="color: #000000;">+</span><span style="color: #000000;"> _depth); </span><span style="color: #008080;">07</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/> Open(); </span><span style="color: #008080;">08</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/> Store(); </span><span style="color: #008080;">09</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/> Close(); </span><span style="color: #008080;">10</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/> </span><span style="color: #008080;">11</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/> Clean(); </span><span style="color: #008080;">12</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/> System.Console.WriteLine(</span><span style="color: #800000;">"</span><span style="color: #800000;">Storing </span><span style="color: #800000;">"</span><span style="color: #000000;"> </span><span style="color: #000000;">+</span><span style="color: #000000;"> _count </span><span style="color: #000000;">+</span><span style="color: #000000;"> </span><span style="color: #800000;">"</span><span style="color: #800000;"> inherited objects of depth </span><span style="color: #800000;">"</span><span style="color: #000000;"> </span><span style="color: #000000;">+</span><span style="color: #000000;"> _depth); </span><span style="color: #008080;">13</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/> Open(); </span><span style="color: #008080;">14</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/> StoreInherited(); </span><span style="color: #008080;">15</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/> Close(); </span><span style="color: #008080;">16</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/ExpandedBlockEnd.gif" align="top"/> }</span></span></div></pre></div></div> <div class="FormattedSourceCode"><div class="fscHeader"><span class="fscFileName">InsertPerformanceBenchmark.cs: <span class="fscMemberName">Configure</span></span></div><div class="fscCode"><pre ID="..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_Configure_415_74"><div><!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --><span style="color: #008080;">1</span><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/None.gif" align="top"/><span style="color: #0000FF;">private</span><span style="color: #000000;"> </span><span style="color: #0000FF;">void</span><span style="color: #000000;"> Configure() </span><span style="color: #008080;">2</span><span style="color: #000000;"><img id="..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_Configure_415_74_33_281_Open_Image" src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/ExpandedBlockStart.gif" align="top" onClick="this.style.display='none'; document.getElementById('..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_Configure_415_74_33_281_Open_Text').style.display='none'; document.getElementById('..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_Configure_415_74_33_281_Closed_Image').style.display='inline'; document.getElementById('..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_Configure_415_74_33_281_Closed_Text').style.display='inline';"/><img id="..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_Configure_415_74_33_281_Closed_Image" src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/ContractedBlock.gif" align="top" style="display: none;" onClick="this.style.display='none'; document.getElementById('..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_Configure_415_74_33_281_Closed_Text').style.display='none'; document.getElementById('..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_Configure_415_74_33_281_Open_Image').style.display='inline'; document.getElementById('..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_Configure_415_74_33_281_Open_Text').style.display='inline';"/> </span><span id="..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_Configure_415_74_33_281_Closed_Text" style="border: solid 1px #808080; background-color: #FFFFFF; display: none;">...</span><span id="..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_Configure_415_74_33_281_Open_Text"><span style="color: #000000;">{ </span><span style="color: #008080;">3</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/> IConfiguration config </span><span style="color: #000000;">=</span><span style="color: #000000;"> Db4oFactory.Configure(); </span><span style="color: #008080;">4</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/> config.LockDatabaseFile(</span><span style="color: #0000FF;">false</span><span style="color: #000000;">); </span><span style="color: #008080;">5</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/> config.WeakReferences(</span><span style="color: #0000FF;">false</span><span style="color: #000000;">); </span><span style="color: #008080;">6</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/> config.Io(</span><span style="color: #0000FF;">new</span><span style="color: #000000;"> MemoryIoAdapter()); </span><span style="color: #008080;">7</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/> config.FlushFileBuffers(</span><span style="color: #0000FF;">false</span><span style="color: #000000;">); </span><span style="color: #008080;">8</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/ExpandedBlockEnd.gif" align="top"/> }</span></span></div></pre></div></div> <div class="FormattedSourceCode"><div class="fscHeader"><span class="fscFileName">InsertPerformanceBenchmark.cs: <span class="fscMemberName">Init</span></span></div><div class="fscCode"><pre ID="..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_Init_493_69"><div><!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --><span style="color: #008080;">1</span><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/None.gif" align="top"/><span style="color: #0000FF;">private</span><span style="color: #000000;"> </span><span style="color: #0000FF;">void</span><span style="color: #000000;"> Init() </span><span style="color: #008080;">2</span><span style="color: #000000;"><img id="..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_Init_493_69_28_128_Open_Image" src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/ExpandedBlockStart.gif" align="top" onClick="this.style.display='none'; document.getElementById('..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_Init_493_69_28_128_Open_Text').style.display='none'; document.getElementById('..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_Init_493_69_28_128_Closed_Image').style.display='inline'; document.getElementById('..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_Init_493_69_28_128_Closed_Text').style.display='inline';"/><img id="..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_Init_493_69_28_128_Closed_Image" src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/ContractedBlock.gif" align="top" style="display: none;" onClick="this.style.display='none'; document.getElementById('..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_Init_493_69_28_128_Closed_Text').style.display='none'; document.getElementById('..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_Init_493_69_28_128_Open_Image').style.display='inline'; document.getElementById('..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_Init_493_69_28_128_Open_Text').style.display='inline';"/> </span><span id="..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_Init_493_69_28_128_Closed_Text" style="border: solid 1px #808080; background-color: #FFFFFF; display: none;">...</span><span id="..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_Init_493_69_28_128_Open_Text"><span style="color: #000000;">{ </span><span style="color: #008080;">3</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/> _count </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #800080;">10000</span><span style="color: #000000;">; </span><span style="color: #008080;">4</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/> _depth </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #800080;">3</span><span style="color: #000000;">; </span><span style="color: #008080;">5</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/> _isClientServer </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000FF;">false</span><span style="color: #000000;">; </span><span style="color: #008080;">6</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/ExpandedBlockEnd.gif" align="top"/> }</span></span></div></pre></div></div> <div class="FormattedSourceCode"><div class="fscHeader"><span class="fscFileName">InsertPerformanceBenchmark.cs: <span class="fscMemberName">Store</span></span></div><div class="fscCode"><pre ID="..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_Store_566_70"><div><!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --><span style="color: #008080;">01</span><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/None.gif" align="top"/><span style="color: #0000FF;">private</span><span style="color: #000000;"> </span><span style="color: #0000FF;">void</span><span style="color: #000000;"> Store() </span><span style="color: #008080;">02</span><span style="color: #000000;"><img id="..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_Store_566_70_29_471_Open_Image" src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/ExpandedBlockStart.gif" align="top" onClick="this.style.display='none'; document.getElementById('..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_Store_566_70_29_471_Open_Text').style.display='none'; document.getElementById('..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_Store_566_70_29_471_Closed_Image').style.display='inline'; document.getElementById('..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_Store_566_70_29_471_Closed_Text').style.display='inline';"/><img id="..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_Store_566_70_29_471_Closed_Image" src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/ContractedBlock.gif" align="top" style="display: none;" onClick="this.style.display='none'; document.getElementById('..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_Store_566_70_29_471_Closed_Text').style.display='none'; document.getElementById('..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_Store_566_70_29_471_Open_Image').style.display='inline'; document.getElementById('..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_Store_566_70_29_471_Open_Text').style.display='inline';"/> </span><span id="..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_Store_566_70_29_471_Closed_Text" style="border: solid 1px #808080; background-color: #FFFFFF; display: none;">...</span><span id="..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_Store_566_70_29_471_Open_Text"><span style="color: #000000;">{ </span><span style="color: #008080;">03</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/> StartTimer(); </span><span style="color: #008080;">04</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/> </span><span style="color: #0000FF;">for</span><span style="color: #000000;"> (</span><span style="color: #0000FF;">int</span><span style="color: #000000;"> i </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #800080;">0</span><span style="color: #000000;">; i </span><span style="color: #000000;"><</span><span style="color: #000000;"> _count; i</span><span style="color: #000000;">++</span><span style="color: #000000;">) </span><span style="color: #008080;">05</span><span style="color: #000000;"><img id="..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_Store_566_70_114_360_Open_Image" src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" onClick="this.style.display='none'; document.getElementById('..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_Store_566_70_114_360_Open_Text').style.display='none'; document.getElementById('..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_Store_566_70_114_360_Closed_Image').style.display='inline'; document.getElementById('..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_Store_566_70_114_360_Closed_Text').style.display='inline';"/><img id="..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_Store_566_70_114_360_Closed_Image" src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/ContractedSubBlock.gif" align="top" style="display: none;" onClick="this.style.display='none'; document.getElementById('..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_Store_566_70_114_360_Closed_Text').style.display='none'; document.getElementById('..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_Store_566_70_114_360_Open_Image').style.display='inline'; document.getElementById('..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_Store_566_70_114_360_Open_Text').style.display='inline';"/> </span><span id="..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_Store_566_70_114_360_Closed_Text" style="border: solid 1px #808080; background-color: #FFFFFF; display: none;">...</span><span id="..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_Store_566_70_114_360_Open_Text"><span style="color: #000000;">{ </span><span style="color: #008080;">06</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/> Item item </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000FF;">new</span><span style="color: #000000;"> Item(</span><span style="color: #800000;">"</span><span style="color: #800000;">load</span><span style="color: #800000;">"</span><span style="color: #000000;">, </span><span style="color: #0000FF;">null</span><span style="color: #000000;">); </span><span style="color: #008080;">07</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/> </span><span style="color: #0000FF;">for</span><span style="color: #000000;"> (</span><span style="color: #0000FF;">int</span><span style="color: #000000;"> j </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #800080;">1</span><span style="color: #000000;">; j </span><span style="color: #000000;"><</span><span style="color: #000000;"> _depth; j</span><span style="color: #000000;">++</span><span style="color: #000000;">) </span><span style="color: #008080;">08</span><span style="color: #000000;"><img id="..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_Store_566_70_233_303_Open_Image" src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" onClick="this.style.display='none'; document.getElementById('..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_Store_566_70_233_303_Open_Text').style.display='none'; document.getElementById('..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_Store_566_70_233_303_Closed_Image').style.display='inline'; document.getElementById('..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_Store_566_70_233_303_Closed_Text').style.display='inline';"/><img id="..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_Store_566_70_233_303_Closed_Image" src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/ContractedSubBlock.gif" align="top" style="display: none;" onClick="this.style.display='none'; document.getElementById('..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_Store_566_70_233_303_Closed_Text').style.display='none'; document.getElementById('..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_Store_566_70_233_303_Open_Image').style.display='inline'; document.getElementById('..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_Store_566_70_233_303_Open_Text').style.display='inline';"/> </span><span id="..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_Store_566_70_233_303_Closed_Text" style="border: solid 1px #808080; background-color: #FFFFFF; display: none;">...</span><span id="..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_Store_566_70_233_303_Open_Text"><span style="color: #000000;">{ </span><span style="color: #008080;">09</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/> item </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000FF;">new</span><span style="color: #000000;"> Item(</span><span style="color: #800000;">"</span><span style="color: #800000;">load</span><span style="color: #800000;">"</span><span style="color: #000000;">, item); </span><span style="color: #008080;">10</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"/> }</span></span><span style="color: #000000;"> </span><span style="color: #008080;">11</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/> objectContainer.Set(item); </span><span style="color: #008080;">12</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"/> }</span></span><span style="color: #000000;"> </span><span style="color: #008080;">13</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/> objectContainer.Commit(); </span><span style="color: #008080;">14</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/> StopTimer(</span><span style="color: #800000;">"</span><span style="color: #800000;">Store </span><span style="color: #800000;">"</span><span style="color: #000000;"> </span><span style="color: #000000;">+</span><span style="color: #000000;"> TotalObjects() </span><span style="color: #000000;">+</span><span style="color: #000000;"> </span><span style="color: #800000;">"</span><span style="color: #800000;"> objects</span><span style="color: #800000;">"</span><span style="color: #000000;">); </span><span style="color: #008080;">15</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/ExpandedBlockEnd.gif" align="top"/> }</span></span></div></pre></div></div> <div class="FormattedSourceCode"><div class="fscHeader"><span class="fscFileName">InsertPerformanceBenchmark.cs: <span class="fscMemberName">StoreInherited</span></span></div><div class="fscCode"><pre ID="..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_StoreInherited_640_79"><div><!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --><span style="color: #008080;">01</span><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/None.gif" align="top"/><span style="color: #0000FF;">private</span><span style="color: #000000;"> </span><span style="color: #0000FF;">void</span><span style="color: #000000;"> StoreInherited() </span><span style="color: #008080;">02</span><span style="color: #000000;"><img id="..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_StoreInherited_640_79_38_501_Open_Image" src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/ExpandedBlockStart.gif" align="top" onClick="this.style.display='none'; document.getElementById('..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_StoreInherited_640_79_38_501_Open_Text').style.display='none'; document.getElementById('..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_StoreInherited_640_79_38_501_Closed_Image').style.display='inline'; document.getElementById('..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_StoreInherited_640_79_38_501_Closed_Text').style.display='inline';"/><img id="..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_StoreInherited_640_79_38_501_Closed_Image" src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/ContractedBlock.gif" align="top" style="display: none;" onClick="this.style.display='none'; document.getElementById('..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_StoreInherited_640_79_38_501_Closed_Text').style.display='none'; document.getElementById('..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_StoreInherited_640_79_38_501_Open_Image').style.display='inline'; document.getElementById('..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_StoreInherited_640_79_38_501_Open_Text').style.display='inline';"/> </span><span id="..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_StoreInherited_640_79_38_501_Closed_Text" style="border: solid 1px #808080; background-color: #FFFFFF; display: none;">...</span><span id="..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_StoreInherited_640_79_38_501_Open_Text"><span style="color: #000000;">{ </span><span style="color: #008080;">03</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/> StartTimer(); </span><span style="color: #008080;">04</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/> </span><span style="color: #0000FF;">for</span><span style="color: #000000;"> (</span><span style="color: #0000FF;">int</span><span style="color: #000000;"> i </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #800080;">0</span><span style="color: #000000;">; i </span><span style="color: #000000;"><</span><span style="color: #000000;"> _count; i</span><span style="color: #000000;">++</span><span style="color: #000000;">) </span><span style="color: #008080;">05</span><span style="color: #000000;"><img id="..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_StoreInherited_640_79_123_390_Open_Image" src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" onClick="this.style.display='none'; document.getElementById('..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_StoreInherited_640_79_123_390_Open_Text').style.display='none'; document.getElementById('..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_StoreInherited_640_79_123_390_Closed_Image').style.display='inline'; document.getElementById('..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_StoreInherited_640_79_123_390_Closed_Text').style.display='inline';"/><img id="..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_StoreInherited_640_79_123_390_Closed_Image" src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/ContractedSubBlock.gif" align="top" style="display: none;" onClick="this.style.display='none'; document.getElementById('..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_StoreInherited_640_79_123_390_Closed_Text').style.display='none'; document.getElementById('..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_StoreInherited_640_79_123_390_Open_Image').style.display='inline'; document.getElementById('..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_StoreInherited_640_79_123_390_Open_Text').style.display='inline';"/> </span><span id="..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_StoreInherited_640_79_123_390_Closed_Text" style="border: solid 1px #808080; background-color: #FFFFFF; display: none;">...</span><span id="..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_StoreInherited_640_79_123_390_Open_Text"><span style="color: #000000;">{ </span><span style="color: #008080;">06</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/> ItemDerived item </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000FF;">new</span><span style="color: #000000;"> ItemDerived(</span><span style="color: #800000;">"</span><span style="color: #800000;">load</span><span style="color: #800000;">"</span><span style="color: #000000;">, </span><span style="color: #0000FF;">null</span><span style="color: #000000;">); </span><span style="color: #008080;">07</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/> </span><span style="color: #0000FF;">for</span><span style="color: #000000;"> (</span><span style="color: #0000FF;">int</span><span style="color: #000000;"> j </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #800080;">1</span><span style="color: #000000;">; j </span><span style="color: #000000;"><</span><span style="color: #000000;"> _depth; j</span><span style="color: #000000;">++</span><span style="color: #000000;">) </span><span style="color: #008080;">08</span><span style="color: #000000;"><img id="..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_StoreInherited_640_79_256_333_Open_Image" src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" onClick="this.style.display='none'; document.getElementById('..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_StoreInherited_640_79_256_333_Open_Text').style.display='none'; document.getElementById('..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_StoreInherited_640_79_256_333_Closed_Image').style.display='inline'; document.getElementById('..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_StoreInherited_640_79_256_333_Closed_Text').style.display='inline';"/><img id="..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_StoreInherited_640_79_256_333_Closed_Image" src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/ContractedSubBlock.gif" align="top" style="display: none;" onClick="this.style.display='none'; document.getElementById('..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_StoreInherited_640_79_256_333_Closed_Text').style.display='none'; document.getElementById('..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_StoreInherited_640_79_256_333_Open_Image').style.display='inline'; document.getElementById('..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_StoreInherited_640_79_256_333_Open_Text').style.display='inline';"/> </span><span id="..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_StoreInherited_640_79_256_333_Closed_Text" style="border: solid 1px #808080; background-color: #FFFFFF; display: none;">...</span><span id="..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_StoreInherited_640_79_256_333_Open_Text"><span style="color: #000000;">{ </span><span style="color: #008080;">09</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/> item </span><span style="color: #000000;">=</span><span style="color: #000000;"> </span><span style="color: #0000FF;">new</span><span style="color: #000000;"> ItemDerived(</span><span style="color: #800000;">"</span><span style="color: #800000;">load</span><span style="color: #800000;">"</span><span style="color: #000000;">, item); </span><span style="color: #008080;">10</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"/> }</span></span><span style="color: #000000;"> </span><span style="color: #008080;">11</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/> objectContainer.Set(item); </span><span style="color: #008080;">12</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"/> }</span></span><span style="color: #000000;"> </span><span style="color: #008080;">13</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/> objectContainer.Commit(); </span><span style="color: #008080;">14</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/> StopTimer(</span><span style="color: #800000;">"</span><span style="color: #800000;">Store </span><span style="color: #800000;">"</span><span style="color: #000000;"> </span><span style="color: #000000;">+</span><span style="color: #000000;"> TotalObjects() </span><span style="color: #000000;">+</span><span style="color: #000000;"> </span><span style="color: #800000;">"</span><span style="color: #800000;"> objects</span><span style="color: #800000;">"</span><span style="color: #000000;">); </span><span style="color: #008080;">15</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/ExpandedBlockEnd.gif" align="top"/> }</span></span></div></pre></div></div> <div class="FormattedSourceCode"><div class="fscHeader"><span class="fscFileName">InsertPerformanceBenchmark.cs: <span class="fscMemberName">ItemDerived</span></span></div><div class="fscCode"><pre ID="..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_ItemDerived_723_76"><div><!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --><span style="color: #008080;">1</span><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/None.gif" align="top"/><span style="color: #0000FF;">public</span><span style="color: #000000;"> </span><span style="color: #0000FF;">class</span><span style="color: #000000;"> ItemDerived : Item </span><span style="color: #008080;">2</span><span style="color: #000000;"><img id="..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_ItemDerived_723_76_36_156_Open_Image" src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/ExpandedBlockStart.gif" align="top" onClick="this.style.display='none'; document.getElementById('..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_ItemDerived_723_76_36_156_Open_Text').style.display='none'; document.getElementById('..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_ItemDerived_723_76_36_156_Closed_Image').style.display='inline'; document.getElementById('..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_ItemDerived_723_76_36_156_Closed_Text').style.display='inline';"/><img id="..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_ItemDerived_723_76_36_156_Closed_Image" src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/ContractedBlock.gif" align="top" style="display: none;" onClick="this.style.display='none'; document.getElementById('..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_ItemDerived_723_76_36_156_Closed_Text').style.display='none'; document.getElementById('..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_ItemDerived_723_76_36_156_Open_Image').style.display='inline'; document.getElementById('..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_ItemDerived_723_76_36_156_Open_Text').style.display='inline';"/> </span><span id="..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_ItemDerived_723_76_36_156_Closed_Text" style="border: solid 1px #808080; background-color: #FFFFFF; display: none;">...</span><span id="..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_ItemDerived_723_76_36_156_Open_Text"><span style="color: #000000;">{ </span><span style="color: #008080;">3</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/> </span><span style="color: #008080;">4</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/> </span><span style="color: #0000FF;">public</span><span style="color: #000000;"> ItemDerived(String name, ItemDerived child) </span><span style="color: #008080;">5</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/> : </span><span style="color: #0000FF;">base</span><span style="color: #000000;">(name, child) </span><span style="color: #008080;">6</span><span style="color: #000000;"><img id="..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_ItemDerived_723_76_138_150_Open_Image" src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/ExpandedSubBlockStart.gif" align="top" onClick="this.style.display='none'; document.getElementById('..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_ItemDerived_723_76_138_150_Open_Text').style.display='none'; document.getElementById('..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_ItemDerived_723_76_138_150_Closed_Image').style.display='inline'; document.getElementById('..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_ItemDerived_723_76_138_150_Closed_Text').style.display='inline';"/><img id="..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_ItemDerived_723_76_138_150_Closed_Image" src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/ContractedSubBlock.gif" align="top" style="display: none;" onClick="this.style.display='none'; document.getElementById('..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_ItemDerived_723_76_138_150_Closed_Text').style.display='none'; document.getElementById('..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_ItemDerived_723_76_138_150_Open_Image').style.display='inline'; document.getElementById('..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_ItemDerived_723_76_138_150_Open_Text').style.display='inline';"/> </span><span id="..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_ItemDerived_723_76_138_150_Closed_Text" style="border: solid 1px #808080; background-color: #FFFFFF; display: none;">...</span><span id="..PerformanceCS.ZipsInsertPerformanceBenchmark.Cs_InsertPerformanceBenchmark.Cs_ItemDerived_723_76_138_150_Open_Text"><span style="color: #000000;">{ </span><span style="color: #008080;">7</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/InBlock.gif" align="top"/> </span><span style="color: #008080;">8</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/ExpandedSubBlockEnd.gif" align="top"/> }</span></span><span style="color: #000000;"> </span><span style="color: #008080;">9</span><span style="color: #000000;"><img src="../../../../Utility/ActiPro.CodeHighligher/OutliningIndicators/ExpandedBlockEnd.gif" align="top"/> }</span></span></div></pre></div></div> </span> <p>The following results were achieved for the <a href="../insert_performance.html" class="wikiLink">testing configuration</a>:</p> <span name="cs_wiki_filter" csw_filters="net"> <p>.NET:</p> <p>Storing 10000 objects of depth 3</p> <p>Store 30000 objects: 1237ms</p> <p>Storing 10000 inherited objects of depth 3</p> <p>Store 30000 objects: 1699ms </p> </span></div> </div> <div id="footer"> This revision (1) was last Modified 2007-12-30T14:37:52 by Tetyana. </div> </body> </html>