मैंने परीक्षण ऐप लागू किया है। जो एमएसएसक्ल डीबी के अंदर डीबी ऑब्जेक्ट में धाराप्रवाह निबर्ननेट मैपिंग का उपयोग करता है। चूंकि मैं ठीक ट्यून निब सीखना चाहता हूं। mvc3 अनुप्रयोग, मैं इस ऐप का उपयोग कर रहा हूँ। परीक्षण उद्देश्यों के लिए जिनके पास 10 enum गुणों और एक स्ट्रिंग संपत्ति के साथ केवल एक साधारण इकाई है। तो, यह वास्तव में लाइटवॉव है, फिर भी निबर्ननेट प्रोफाइलर के अनुसार स्टार्टअप समय 4.37 सेकेंड है। जो एक इकाई को कुछ लाइनों की जांच/अनचेक संपत्ति के साथ प्रस्तुत करने में वास्तव में धीमी है।निबर्ननेट सत्र कारखाने को अनुकूलित करना, वेब ऐप का स्टार्टअप समय वास्तव में धीमा
कोड निम्न है। 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();
}
}
अंदर myController मैं निम्नलिखित है:
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;
}
}
}
क्या स्टार्टअप समय वास्तव में महत्वपूर्ण है? उचित तैनाती में यह लागत अक्सर नहीं होनी चाहिए। वेब ऐप्स के संबंध में – Lucero
। मुझे लगता है कि इस लाइटवॉव इकाई का उपयोग करके यह स्टार्टअप समय "कुछ" है। आप कह रहे हैं कि मैं तैनाती की जांच करता हूं? – BobRock
मैं जो कह रहा हूं वह यह है कि यदि यह हर दिन या तैनात वातावरण में हर दिन एक बार होता है (जब भी आपका एप्लिकेशन पूल रीसाइक्लिंग हो जाता है), वह लागत एक डीलरब्रेकर नहीं है। – Lucero