如何跟踪ASP.Net JIT编译?它很慢

时间:2011-07-21 16:33:11

标签: asp.net vb.net precompile

如何跟踪应用程序的JIT编译?我们有一个小的asp.net应用程序,它是一个更大的网站(其余代码的经典asp)的一部分,所以它不经常访问,并且(可能)在超时或应用程序池回收后重新编译。重新编译需要2分钟!!

perfmon中是否有跟踪工具或计数器可以帮助我追踪究竟发生了什么?

我打算尝试预编译,但我认为超时和应用程序池回收将使这无用。 (或者这是一个不好的假设?)

提前谢谢!

1 个答案:

答案 0 :(得分:3)

如果您确实认为问题是Jit,则可以使用.NET Performance Counters。打开“性能”管理控制台(因操作系统而异)并单击+,然后添加.NET CLR Jit计数器:

Jit Performance Counter

这将允许您获得一些关于Jit的简单指标,花费多少时间等等。

现在,我不认为问题完全在于“Jit”。它可能是ASP.NET将您的应用程序编译为Temporary ASP.NET Files,它可能是强名称签名检查等。我会考虑除CLR Jit之外的许多其他东西。

Jit特别指出运行时将IL代码编译为本机代码,或者在NGEN中找到它。您的整个应用程序不会立即进行JITed - 每个方法都是根据具体情况进行JIT。

我认为您最好的方法是查看ASP.NET Applications对象下的Compilations Total计数器,并尝试预先编译您的网站。