Hey Oren
Just wanted you to know I disabled acceleration (dxdiag.exe in case anyone is reading this) inside the VM on build 592 and things seem to have improved. Initially there is a lengthy delay for the app to get focus when I am running tests but I expect that. Otherwise performance has improved alot.
I do have one question about schema exports and how sessions are identified. Each time a schema export is done during the test init by nh it appears in the same session...so the number of statements reaches into the thousands quickly for that one session. I have a test fixture (below) that does the schema export before tests are run...each SchemaExport call is in Session#1 according to NHProf...is that normal? Does Configuration have a session it does work in and since my configuration reference is static it will always appear in that session?
   public class InMemoryDbFixture : WithDebugging,IDisposable
   {
      private static Configuration configuration;
      public InMemoryDbFixture()
      {
         NHibernateProfiler.Initialize();
         if (configuration == null)
         {
            configuration = new Configuration();
            string connectionString = string.Format("Data Source={0};Version=3;New=True;", "MaterialsTesting_Test");
            configuration
               .SetProperty(Environment.SessionFactoryName,"reporting_test")
               .SetProperty(Environment.DefaultEntityMode, "poco")
               .SetProperty(Environment.Dialect, typeof (SQLiteDialect).AssemblyQualifiedName)
               .SetProperty(Environment.ConnectionDriver, typeof (SQLite20Driver).AssemblyQualifiedName)
               .SetProperty(Environment.ConnectionString, connectionString)
               .SetProperty(Environment.ProxyFactoryFactoryClass, typeof (ProxyFactoryFactory).AssemblyQualifiedName)
               .SetProperty(Environment.GenerateStatistics, "true");
            configuration.AddAssembly(typeof (ReportingModelLocator).Assembly);
            configuration.AddAssembly(GetType().Assembly);
            SessionFactory = configuration.BuildSessionFactory();
           Â
         }
         Rebuild();
         Session = SessionFactory.OpenSession();
         Session.FlushMode = FlushMode.Commit;
      }
      public static ISessionFactory SessionFactory { get; private set; }
      public ISession Session { get; private set; }
      public virtual void Dispose()
      {
         Session.Dispose();
         Session = null;
//Â Â Â Â Â Â Â Â Â ProfilerInfrastructure.FlushAllMessages();
      }
      public void Rebuild()
      {
         new SchemaExport(configuration).Execute(false, true, false);