Mam aplikację do testowania narzędzi. który używa płynnego mapowania nhibernate do obiektu db wewnątrz mssql db. Ponieważ chcę się uczyć dobrze dostroić nhib. aplikacje mvc3, używam tej aplikacji. do celów testowych, które mają tylko jedną prostą jednostkę z 10 właściwościami enum i jedną właściwością łańcucha znaków. Tak, to jest naprawdę lightwave, ale czas uruchamiania według profilera nhibernate wynosi 4,37 sec. Co jest naprawdę powolne w renderowaniu jednego obiektu z kilkoma zaznaczonymi/niezaznaczonymi właściwymi liniami.Optymalizowanie fabryki sesji nhibernate, czas uruchamiania aplikacji WebApp bardzo powolny
Kod jest następujący. Domain.SessionProvider.cs
public static ISessionFactory CreateSessionFactory()
{
var config = Fluently.Configure()
.Database(MsSqlConfiguration.MsSql2008
.ConnectionString(c => c.FromConnectionStringWithKey("myConnection")))
.Mappings(m => m.FluentMappings.Add<FeaturesMap>())
.ExposeConfiguration(p => p.SetProperty("current_session_context_class", "web"))
.BuildConfiguration();
return config.BuildSessionFactory();
}
global.asax
public class MvcApplication : System.Web.HttpApplication
{
//SessionPerWebRequest is ommited here as well as other content
public static ISessionFactory SessionFactory =
SessionProvider.CreateSessionFactory();
protected void Application_Start()
{
SessionFactory.OpenSession();
}
}
Wewnątrz MyController Mam następujący:
public ActionResult Index()
{
return View(GetData());
}
private IList<FeaturesViewModel> GetData()
{
List<Features> data;
using (ISession session = MvcApplication.SessionFactory.GetCurrentSession())
{
using (ITransaction tx = session.BeginTransaction())
{
data = session.Query<Features>().Take(5).ToList();
tx.Commit();
var viewModelData = FeaturesViewModel.FromDomainModel(data);
return viewModelData;
}
}
}
Czy czas uruchomienia jest naprawdę tak ważny? Przy prawidłowym wdrożeniu koszt ten nie powinien często występować. – Lucero
dotyczące aplikacji internetowych. Myślę, że ten czas startowy z wykorzystaniem tej encji lightwave to "coś". Mówisz, że sprawdzam wdrożenie? – BobRock
Chodzi o to, że jeśli zdarza się to raz dziennie lub co kilka dni w środowisku wdrożonym (gdy pula aplikacji zostanie poddana recyklingowi), koszt ten nie jest decydujący. – Lucero