Sophie

Sophie

distrib > Fedora > 15 > i386 > by-pkgid > 2e9c43658e374d290a2de15d25134ac8 > files > 893

db4o-doc-8.0-1.fc15.i686.rpm

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns:MadCap="http://www.madcapsoftware.com/Schemas/MadCap.xsd" MadCap:lastBlockDepth="2" MadCap:lastHeight="120" MadCap:lastWidth="624" MadCap:disableMasterStylesheet="true" MadCap:tocPath="Tuning|Main Operations Performance|Insert Performance" MadCap:InPreviewMode="false" MadCap:RuntimeFileType="Topic" MadCap:TargetType="WebHelp" MadCap:PathToHelpSystem="../../../../" MadCap:HelpSystemFileName="index.xml" MadCap:SearchType="Stem">
    <head><title>Local And Remote Modes	</title>
        <script type="text/javascript">/* <![CDATA[ */
window.onload = function(){
	var pathToFlash = $('html').attr('MadCap:PathToHelpSystem') + 'Content/Resources/Code/ZeroClipboard.swf';
	ZeroClipboard.setMoviePath(pathToFlash);
			
	function bindToClipBord(element,content){
		var clip = new ZeroClipboard.Client();
		clip.setText(content);
		clip.glue(element);
	};
		
	if(location.protocol==='file:'){
		$('.copylink-marker').remove();
	} else{
			$('.copylink-marker').each(function(){
				var text = $(this).parent().parent().children('.prettyprint').html();
				$(this).hover(function(){
					bindToClipBord(this,text);
				},
				function(){});
			});	
	}		
	prettyPrint();	
};
                /* ]]> */</script>
        <link href="../../../SkinSupport/MadCap.css" rel="stylesheet" />
        <link href="../../../Resources/Stylesheets/OnlineStyle.css" rel="stylesheet" />
        <script src="../../../Resources/Code/prettify.js">
        </script>
        <script src="../../../Resources/Code/lang-vb.js">
        </script>
        <script src="../../../Resources/Code/jquery.min.js">
        </script>
        <script src="../../../Resources/Code/ZeroClipboard.js">
        </script>
        <script src="../../../SkinSupport/MadCapAll.js" type="text/javascript">
        </script>
    </head>
    <body>
        <p class="MCWebHelpFramesetLink" style="display: none;"><a href="../../../../index_CSH.html#tuning/main_operations_performance/insert_performance/local_and_remote_modes.htm" style="">Open topic with navigation</a>
        </p>
        <div class="MCBreadcrumbsBox"><span class="MCBreadcrumbsPrefix">You are here: </span><a class="MCBreadcrumbsLink" href="../../../tuning.htm">Tuning</a><span class="MCBreadcrumbsDivider"> &gt; </span><a class="MCBreadcrumbsLink" href="../../main_operations_performance.htm">Main Operations Performance</a><span class="MCBreadcrumbsDivider"> &gt; </span><a class="MCBreadcrumbsLink" href="../insert_performance.htm">Insert Performance</a><span class="MCBreadcrumbsDivider"> &gt; </span><span class="MCBreadcrumbs">Local And Remote Modes</span>
        </div>
        <p>
            <script type="text/javascript">/*<![CDATA[*/document.write('<a href="' + location.href +'">');
				document.write("Direct Link");
			document.write('</a>');/*]]>*/</script>
        </p>
        <p>
        </p>
        <h1>Local And Remote Modes</h1>
        <p>Of course local and client/server modes cannot give the same
performance and it is difficult to say what will be the impact of inserting the
objects over the network, as the network conditions can vary. </p>
        <p>You can use the following test to compare the performance on
your network:</p>
        <p MadCap:conditions="Global.Primary:java" />
        <p MadCap:conditions="Primary..NET">
            <pre class="prettyprint" xml:space="preserve">InsertPerformanceBenchmark.cs: RunClientServerTest
private void RunClientServerTest()
         {
            ConfigureClientServer();

            Init();
            Clean();
            System.Console.WriteLine("Storing " + _count + " objects of depth " 
+ _depth + " locally:");
            Open();
            Store();
            Close();

            InitForClientServer();
            Clean();
            System.Console.WriteLine("Storing " + _count + " objects of depth " 
+ _depth + " remotely:");
            Open();
            Store();
            Close();
        }</pre>
            <pre class="prettyprint" xml:space="preserve">InsertPerformanceBenchmark.cs: ConfigureClientServer
private void ConfigureClientServer()
         {
            IConfiguration config = Db4oFactory.Configure();
            config.LockDatabaseFile(false);
            config.WeakReferences(false);
            config.FlushFileBuffers(false);
            config.ClientServer().SingleThreadedClient(true);
        }</pre>
            <pre class="prettyprint" xml:space="preserve">InsertPerformanceBenchmark.cs: Init
private void Init()
         {
            _count = 10000;
            _depth = 3;
            _isClientServer = false;
        }</pre>
            <pre class="prettyprint" xml:space="preserve">InsertPerformanceBenchmark.cs: InitForClientServer
private void InitForClientServer()
         {
            _count = 10000;
            _depth = 3;
            _isClientServer = true;
        }</pre>
            <pre class="prettyprint" xml:space="preserve">InsertPerformanceBenchmark.cs: Store
private void Store()
         {
            StartTimer();
            for (int i = 0; i &lt; _count; i++)
             {
                Item item = new Item("load", null);
                for (int j = 1; j &lt; _depth; j++)
                 {
                    item = new Item("load", item);
                }
                objectContainer.Store(item);
            }
            objectContainer.Commit();
            StopTimer("Store " + TotalObjects() + " objects");
        }</pre>
        </p>
        <p MadCap:conditions="Global.Primary:net" />
        <p>With a good and reliable network you can use the same
methods to improve the insert performance as in a local mode. However, if your
network connection is not always perfect you will need to use commits more
often to ensure that the objects do not get lost. See the
<a href="commit_frequency.htm">next chapter</a> for recommendations on commit performance.</p>
        <p MadCap:conditions="Primary.Online">Download example code:</p>
        <p MadCap:conditions="Primary.Online">
            <MadCap:conditionalText MadCap:conditions="Primary..NET,Primary.c#,Primary.All languages"><a href="../performancecs.zip">c# </a>
            </MadCap:conditionalText>
        </p>
        <script type="text/javascript" src="../../../SkinSupport/MadCapBodyEnd.js">
        </script>
    </body>
</html>