Click here to Skip to main content
Click here to Skip to main content
Articles » Database » Database » General » Downloads
 
Add your own
alternative version

Identifying NHibernate-Related Bottlenecks through Performance Monitoring

, 10 Jun 2007 CPOL
A distilled methodology for detecting and isolating NHibernate-related performance and scalability issues
using System;
using System.Collections;
using Sample.Mocks;
using Sample.Tests;

namespace Sample
{
	class Sample
	{
		/// <summary>
		/// The main entry point for the application.
		/// </summary>
		[STAThread]
		static void Main()
        {
            try
            {
                Initialize();
                Console.Write("Number of threads? ");
                int threadCount = int.Parse(Console.ReadLine());
                Console.Write("Number of commands to execute? ");
                int passes = int.Parse(Console.ReadLine());
                ThreadContext context = new ThreadContext();
                GeneralTest tests = new GeneralTest(context,passes);
                ArrayList commands = tests.BasicGeneralCommandTest();
                DateTime start = DateTime.Now;
                //((ICommand)commands[0]).BasicGeneralCommandTest();
                SimpleThreadPool pool = new SimpleThreadPool(commands, threadCount);
                pool.Execute();
                DateTime end = DateTime.Now;
                double totalSeconds = 0;
                foreach (CommandResult result in context.CommandResults)
                {
                    totalSeconds += result.TimeProcessing.TotalSeconds;
                }
                Console.WriteLine("Aggregate Time: " + end.Subtract(start).TotalSeconds);
                Console.WriteLine("Individual Time: " + totalSeconds);
                TearDown();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.ToString());
            }
            Console.Read();
        }
		private static void Initialize() {
			Mock mock = new Mock();
			Console.WriteLine(string.Empty);
		}
		private static void TearDown() {
			Console.WriteLine("Done!");
			Console.Read();
		}
	}
}

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, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

Share

About the Author

Peter Weissbrod
Web Developer
United States United States
Independent contract developer for .NET data-oriented systems.
 
not much to say about myself but feel free to contact me for any inquiries and comments!

| Advertise | Privacy | Terms of Use | Mobile
Web03 | 2.8.141223.1 | Last Updated 10 Jun 2007
Article Copyright 2007 by Peter Weissbrod
Everything else Copyright © CodeProject, 1999-2014
Layout: fixed | fluid