NHibernate profiler的免费替代品?

cho*_*bo2 33 nhibernate nhprof

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

那么还有其他选择吗?

Răz*_*nda 41

一个很好的选择是使用Glimpse插件:

NHibernate.Glimpse

它显示由NHibernate生成的SQL,其关联的调用堆栈,会话工厂统计信息,调用计时等,所有这些都在当前页面的底部或新窗口中.

可以从以下网址下载Glimpse:getglimpse.com

关于channel9:Channel 9的Glimpse团队也有很好的演示


截至2013年9月26日的ASP.NET安装2013年410日

使用Package Manager控制台进行安装:

PM> Install-Package Glimpse.AspNet
PM> Install-Package NHibernate.Glimpse
Run Code Online (Sandbox Code Playgroud)

注册会话工厂以查看全局统计信息:

NHibernate.Glimpse.Plugin.RegisterSessionFactory(mySessionFactory);
Run Code Online (Sandbox Code Playgroud)

运行您的Web应用程序并访问:

http://localhost:8080/Glimpse.axd
Run Code Online (Sandbox Code Playgroud)

假设应用程序在端口8080的localhost上运行.

从那里你可以打开/关闭Glimpse或命名会话.

http://j.mp/16tfXVZ

一旦你打开Glimpse,它就会显示在你网站的页面上,最小化到右下角(点击G打开它):

http://j.mp/16thcEP

NHibernate.Glimpse与AJAX调用一起使用,您需要在ajax选项卡中选择要检查的请求,然后NHibernate通常查看选项卡上的数据.

http://j.mp/16ti4cs


AJAX请求(最新版本不再需要此手动设置)

要使其与ajax调用一起使用,您需要根据"Web.config"中响应的内容类型启用它们.

对于ajax控件工具包UpdatePanel,text/plain需要内容类型:

ASP.NET WebForms AJAX所需的一瞥配置

然后,您需要在ajax选项卡中选择要检查的请求.


截至2013年4月9日Asp.Net安装说明:

使用Package Manager控制台进行安装:

PM> Install-Package NHibernate -Version 3.3.2.4000

PM> Install-Package Glimpse -Version 1.0.0-rc1 -Pre

PM> Install-Package -IgnoreDependencies Glimpse.AspNet -Version 1.0.0-rc1 -Pre
Run Code Online (Sandbox Code Playgroud)

Glimpse.AspNet必须安装,-IgnoreDependencies因此它不会更新Glimpse.Core1.0.1.

Git Clone NHibernate.Extensions:

git://github.com/ranzlee/NHibernate.Extensions.git
Run Code Online (Sandbox Code Playgroud)

并将Nhibernate.Glimpse项目添加到您的解决方案或构建项目并添加一个dll引用.

添加到Web.config:

</configuration>

    .
    .
    .

    <appSettings>
        <add key="nhibernate-logger" value="NHibernate.Glimpse.LoggerFactory, NHibernate.Glimpse"/>
        <add key="NHibernate.Glimpse.Loggers" value="command,connection,flush,load,transaction"/>
    </appSettings>
</configuration>
Run Code Online (Sandbox Code Playgroud)

并确保您已设置providerName连接字符串.SqlClient提供程序的示例:

<connectionStrings>
  <add name="TestDb" providerName="System.Data.SqlClient" connectionString="Server=example.com;database=nhibernate_test;User ID=postgres;Password=password;" />
</connectionStrings>
Run Code Online (Sandbox Code Playgroud)

并注册您的会话工厂:

NHibernate.Glimpse.Plugin.RegisterSessionFactory(SessionHolder.SessionFactory);
Run Code Online (Sandbox Code Playgroud)


Dig*_*ift 12

SQL Server Management Studio 2005和2008附带了SQL Profiler.我一直使用它们并发现它们非常宝贵.

还有一个SQL Profiler for SQL Express:http://sites.google.com/site/sqlprofiler/

这些与优秀的NHibernate分析器不完全相同,但在识别昂贵且低效的操作时同样有用.

  • Codeplex上有一个免费的替代方案:[ExpressProfiler](http://expressprofiler.codeplex.com/) (4认同)