Speeding Up NHibernate Startup Time
One technique I use and posted on the NHUsers mailing list consists in serializing a previously-configured Configuration to the filesystem and deserializing it on all subsequente starts of the application:
Configuration cfg = null; IFormatter serializer = new BinaryFormatter(); //first time cfg = new Configuration().Configure(); using (Stream stream = File.OpenWrite("Configuration.serialized")) { serializer.Serialize(stream, configuration); } //other times using (Stream stream = File.OpenRead("Configuration.serialized")) { cfg = serializer.Deserialize(stream) as Configuration; }
Check it out for yourselves.
Update: Fabio Maulo posted about this some time ago on NHForge. You can find his post here.