如何跟踪应用程序的JIT编译?我们有一个小的asp.net应用程序,它是一个较大的网站的一部分(对于其余的代码,是典型的asp ),所以它不会被频繁访问,并且(可能)在超时或应用程序池回收后重新编译。重新编译最多需要2分钟!
perfmon中有没有跟踪工具或计数器可以帮助我跟踪到底发生了什么?
我打算试着预编译,但我认为超时和应用程序池回收会让它变得无用。(或者这是一个糟糕的假设?)
提前谢谢你!
发布于 2011-07-22 00:42:10
如果您确实认为问题出在Jit,那么可以使用.NET性能计数器。打开"Performance“管理控制台(因操作系统而异),单击+,然后添加.NET CLR Jit计数器:

这将允许您获得一些关于Jit的简单指标,以及在其中花费了多少时间等。
现在,我不认为问题完全出在"Jit“上。可能是ASP.NET将你的应用程序编译成Temporary ASP.NET Files,也可能是强名称签名检查,等等。除了CLR Jit之外,我还会考虑很多其他的事情。
Jit特别是当IL代码被运行时编译成本机代码,或者在NGEN中找到它的时候。您的整个应用程序不会一下子获得所有的JITed --每个方法都是逐个JITed的。
我认为你最好的办法是看看ASP.NET Applications对象下的编译总数计数器,然后试着预编译你的网站。
https://stackoverflow.com/questions/6779537
复制相似问题