Click here to Skip to main content
11,410,129 members (60,998 online)
Click here to Skip to main content
Articles » Database » Database » Databases » Downloads
Add your own
alternative version

Optimizing building trees from a database

, 20 Jan 2005
How a different way of looking at a problem can result in better performance.
optimizingtreebuilding.zip
DemoApp
App.ico
bin
Release
BuildingTrees.dll
DemoApp.exe
DemoApp.csproj.user
BuildingTrees
bin
Release
BuildingTrees.csproj.user
using System;
using System.Runtime.InteropServices;
using System.ComponentModel;
using System.Threading;

namespace Win32
{
    internal class HiPerfTimer
    {
        [DllImport("Kernel32.dll")]
        private static extern bool QueryPerformanceCounter(out long lpPerformanceCount);  

		[DllImport("Kernel32.dll")]
		private static extern bool QueryPerformanceFrequency(out long lpFrequency);
		
		private long startTime, stopTime;
		private long freq;
		
        // Constructor
		public HiPerfTimer()
		{
            startTime = 0;
            stopTime  = 0;

            if (QueryPerformanceFrequency(out freq) == false)
            {
                // high-performance counter not supported 
                throw new Win32Exception(); 
            }
		}
		
		// Start the timer
		public void Start()
		{
            // lets do the waiting threads there work
            Thread.Sleep(0);  

			QueryPerformanceCounter(out startTime);
		}
		
		// Stop the timer
		public void Stop()
		{
		    QueryPerformanceCounter(out stopTime);
		}
		
		// Returns the duration of the timer (in seconds)
        public double Duration
        {
        	get
        	{
            	return (double)(stopTime - startTime) / (double) freq;
            }
        }
	}
}

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here

Share

About the Author

NielsHoldijk
Software Developer
Netherlands Netherlands
No Biography provided

| Advertise | Privacy | Terms of Use | Mobile
Web04 | 2.8.150414.5 | Last Updated 20 Jan 2005
Article Copyright 2005 by NielsHoldijk
Everything else Copyright © CodeProject, 1999-2015
Layout: fixed | fluid