我们的 asp.net 应用程序目前遇到大量有关性能的问题。一直在进行各种调查,目前唯一突出的是工作进程的“% time in JIT”性能计数器。
在一个站点上,这往往会持续飙升至 90-95%,但很难确定这是否具有任何真正的意义,或者仅仅是一个转移注意力的问题。该站点以发布模式发布,编译调试标志设置为 false,按预期在初始加载时发生完全 JIT,但是,当在站点周围导航时,我们仍然会在 JIT 时间计数器中看到这些持续的峰值。有没有人能够帮助了解这个时间是如何计算的,以及它是否是一个可靠的性能指标?
更奇怪的是,在本地 IIS 安装上测试 Web 应用程序,我再次注意到,初始 JIT 按预期发生,但“% time in JIT”计数器的峰值仅发生在每个人的初始负载上页面 - 如果我立即刷新该页面,则计数器保持为 0。如果我等待几分钟然后再次刷新该页面,则计数器会出现峰值。这应该发生有什么原因吗?几乎就像页面是 JIT 编译然后缓存了几分钟。
到目前为止,我一直在研究与此计数器相关的要点是 LINQ 查询、正则表达式和通过反射进行的调用,但运气不佳。
非常感谢任何建议/帮助,谢谢。