2

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

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

我打算尝试预编译,但我认为超时和应用程序池回收会使它变得毫无用处。(或者这是一个糟糕的假设?)

提前谢谢!

4

1 回答 1

3

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

Jit 性能计数器

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

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

Jit 特别是当 IL 代码被运行时编译为本机代码时,或者在 NGEN 中找到它。您的整个应用程序不会一次全部 JIT - 每个方法都是根据具体情况 JIT 的。

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

于 2011-07-21T16:42:09.660 回答