nHibernate 在托管网站上性能低下

标签 nhibernate castle-windsor web-hosting public

我有一个由公共(public)托管公司托管的网络应用程序,该站点尚未上线,我仍在对其进行一些测试。我将 nHibernate 与 Windsor CaSTLe Container 一起用于依赖项注入(inject),并且该站点似乎有时响应非常慢。我联系了支持人员,但他们说这是我的应用程序而不是他们的服务器。在公共(public)托管公司托管时,是否有人遇到过基于 ORM 的网站的类似性能问题?

此外,您会推荐哪家托管公司来托管网站?我尝试了 godaddy 但无法使用它们,因为它们不允许以完全信任的方式运行网站,这显然是 nHibernate 所必需的。


我使用 xml 配置文件配置了 nHibernate,以下列方式打开 session :

using (ISession session = _sessionManager.OpenSession())
{         
ICriteria crit = session.CreateCriteria(typeof(Content));
   return crit.List();
}

同样在 Application_Start 中,我有以下代码:

private static WindsorContainer container;
if (container == null)
   {
     container = new WindsorContainer(new XmlInterpreter(filePath));
      Application[Constant.CastleWindsorAppKey] = container;
    }

最佳答案

如果您不进行测量,您就不知道您的应用程序有多慢。我正在使用 timing http module在开发过程中快速注意到大的性能问题。 当您的某个页面加载缓慢时,您应该使用分析器来找到确切的瓶颈。我正在为我当前的项目使用 NHibernate,我没有遇到任何性能问题。我最复杂的查询涉及一个包含 10 个不同类的复杂对象图,使用它们的 NHibernate 映射需要 0.082 秒才能执行。该应用程序的主要瓶颈是将 html aspx 模板呈现给响应(需要 0.5 秒)。性能问题通常出现在数据访问中,但除非您对其进行测量,否则您无法确定。

关于nHibernate 在托管网站上性能低下,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/334940/

相关文章:

.net - 为 .NET 项目选择数据库和 ORM

c# - 温莎 WCF 设施工厂?

asp.net-core - CaSTLe Windsor ResolveAll 的网络核心等效项

azure - 在 Web 应用程序中将 Nest Elasticsearch 与 Azure 结合使用

javascript - 在哪里托管用于分发的 javascript 闭源前端库?

node.js - 将nodeJS部署到Heroku内部错误

c# - 使用 LINQ 加入和转置多个列表

nhibernate - 流畅的 NHibernate 缓存与自动映射

nhibernate - 数据库建模或数据库设计: Which comes first?

c# - 将 Windsor CaSTLe 注入(inject)的依赖项传递给并行线程 - Dispose() 问题