我使用 IIS 运行 Asp.net 4.5,并尝试找到一种方法来改善多核(8 核)机器上的 jit 时间。我使用的测试是计时 100 个不同的页面。我测试所有这些的机器是 4 核、8 个逻辑处理器。
我看到 csc 或 w3p 的最大值为 13%,因此看起来它只使用了 1 个核心。我读到,自从 Asp.net 4.5 多核 jit 默认启用以来。好的,当然,它仍然只有 13%。我读到 ngen 尝试在 bin 目录中的所有 dll 上执行该操作。这实际上对时间没有任何影响,但通过 perfView 似乎做了一些事情。
测试时防病毒软件已关闭。
测试时间:在第一个页面加载后执行
•冷预编译(第一次运行) 10.25 分钟
•热运行(第二次运行) 2.32 分钟
•Ngen 然后第一次运行 10.24 分钟
Perfview JitStats
Cold prejit
- 进程 CPU 时间:161,038 毫秒
- JIT 编译方法总数:13,193
- 总毫秒 JIT 编译时间:2,630
- JIT 编译时间占进程总 CPU 时间的百分比:1.6%
此进程不使用后台 JIT 编译
Ngen 然后首先运行
- 进程 CPU 时间:144,152 毫秒
- JIT 编译方法总数:4,604
- 总毫秒 JIT 编译时间:608
- JIT 编译时间占进程总 CPU 时间的百分比:0.4%
此进程不使用后台 JIT 编译。