标签: nhprof

NHibernate profiler的免费替代品?

我想知道是否有其他程序或方式来配置除NHibernate探查器之外.我的试用用完了,我买不起它.

那么还有其他选择吗?

nhibernate nhprof

33
推荐指数
2
解决办法
2万
查看次数

NHibernate Profiler - 数据库持续时间和总持续时间之间存在巨大差异?

我有一个广泛使用NHibernate的应用程序.我已经开始使用NHibernate Profiler来识别可能的性能问题.我的问题与Query Durations统计信息有关.

统计数据在数据库持续时间和总持续时间中细分.据我所读,数字应该非常接近.然而,我看到相对较大的差异,我正试图弄清楚这些的来源.这是一些数据

替代文字

我有什么想法可以开始解决这些问题吗?

nhibernate fluent-nhibernate nhprof

11
推荐指数
2
解决办法
1765
查看次数

计算NHibernate在单元测试中执行的查询次数

在代码的某些单元/集成测试中,我们希望检查我们的代码是否正在使用二级缓存.

根据Ayende提供的代码:

http://ayende.com/Blog/archive/2006/09/07/MeasuringNHibernatesQueriesPerPage.aspx

我写了一个简单的类来做到这一点:

public class QueryCounter : IDisposable
{
    CountToContextItemsAppender _appender;

    public int QueryCount
    {
      get { return _appender.Count; }
    }

    public void Dispose()
    {
      var logger = (Logger) LogManager.GetLogger("NHibernate.SQL").Logger;
      logger.RemoveAppender(_appender);
    }

    public static QueryCounter Start()
    {
      var logger = (Logger) LogManager.GetLogger("NHibernate.SQL").Logger;

      lock (logger)
      {
        foreach (IAppender existingAppender in logger.Appenders)
        {
          if (existingAppender is CountToContextItemsAppender)
          {
            var countAppender = (CountToContextItemsAppender) existingAppender;

            countAppender.Reset();

            return new QueryCounter {_appender = (CountToContextItemsAppender) existingAppender};
          }
        }

        var newAppender = new CountToContextItemsAppender();
        logger.AddAppender(newAppender);
        logger.Level = …
Run Code Online (Sandbox Code Playgroud)

nhibernate log4net caching count nhprof

8
推荐指数
1
解决办法
2168
查看次数

自动分析/单元测试NHibernate行为

我使用NHibernate几个月,我发现它非常强大,但对我来说这是一种有时会伤害你的工具.我有很多情况,相对简单的映射更改,在LINQ查询或任何使用我的实体的代码导致意外的行为.我最"壮观的成功"是让N + 1删除和插入的读操作只是因为我在代码中而不是在数据库中对我的组件集合进行排序.

感谢NHProf,我可以跟踪这样的一些问题,但我觉得我无法确定在重构或小的需求更改之后我的数据访问层仍能正确有效地运行.在每次更改后手动测试/分析它是一种痛苦的方式.我会想到这里是一些样的方式来进行单元测试 NHibernate的行为引擎盖下,即会产生什么SQL,多少查询完成后,有多少实体加载,很多表如何加盟等.

我知道它可能有点偏离主要的ORM目的,但对于需要表现良好的应用程序,我认为低级知识比抽象更重要.

是否有任何与此想法相似的实现?如何自动分析我的NHibernate应用程序?

nhibernate profiling unit-testing nhprof

6
推荐指数
1
解决办法
194
查看次数

NHibernate Profiler没有看到我的ASP.NET MVC应用程序的请求

我正在使用NHProf和ASP.NET MVC 3.

我插了

HibernatingRhinos.Profiler.Appender.NHibernate.NHibernateProfiler.Initialize();

在我的Application_Start方法中,但NHProf仍然没有看到我的会话,也没有显示任何内容.

可能是我的问题的根源是什么?

.net asp.net nhprof nhibernate-profiler

5
推荐指数
2
解决办法
1877
查看次数

NHibernate需要很长时间才能运行查询

这是使用Fluent NHibernate完成的

我有一个NHibernate查找,它从一个表中检索数据.如果我使用生成的sql并通过查询分析器运行它,运行需要大约18ms.

使用NHProfiler,我得到的查询持续时间为~1800ms - 比sql长100倍!

Query duration
 - Database only:1800ms
 - Total: 1806ms
Run Code Online (Sandbox Code Playgroud)

正在填充的对象包含一个子类,但是这个子进程是从NHibernate二级缓存加载的

正在返回的数据被分页(每个查询50个),尽管据我所知,这应该没有任何区别

我还有一个计数运行,再次,这在查询分析器中需要大约4ms,根据NHProfiler需要大约1800ms.

NH Profiler是显示查询执行时间还是检索的完整时间,映射类并构造对象图?如果它是前者 - 为什么它比直接运行查询需要更长的时间?

编辑:刚刚发现Ayende关于NH Profiler中给出的查询持续时间值的这篇文章:http://ayende.com/Blog/archive/2009/06/28/nh-prof-query-duration.aspx - 所以它绝对是需要很长时间的数据库查询

nhibernate fluent sql-server-profiler nhprof

4
推荐指数
1
解决办法
2220
查看次数

加载vs获取Nhibernate

我的Web应用程序中的母版页进行身份验证,并使用a加载用户实体Get.

在此之后,每当用户控件或任何其他类需要用户对象时,我都会这样做Load.

通常,nhibernate应该从缓存加载对象,或者Load被调用时返回持久加载的对象.但这不是我的Web应用程序显示的行为.每当调用Load时,NHprof总是显示sql.如何验证正确的行为Load

我使用S#arp架构框架.

nhibernate orm s#arp-architecture nhprof

2
推荐指数
1
解决办法
2832
查看次数