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();
cfg = new Configuration().Configure();
using (Stream stream = File.OpenWrite("Configuration.serialized"))
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.