Pie*_*ens 6 .net c# performance perfview
我使用PerfView调整应用程序,第二个最昂贵的项目目前标记为:
其他<< clr!JIT_New >>
占CPU的10%以上.即使对于后续运行的测试用例,这仍然存在.
任何人都可以确定哪些活动或代码实践可能导致动态生成需要JIT-ting的新代码?
Han*_*ant 11
JIT_New()是CLR中的一个辅助函数,只要您使用new运算符在代码中创建新对象,它就会运行.它只是从垃圾收集堆中分配内存并调用类构造函数.或者换句话说,它实现了Opcodes.Newobj IL指令.它的名字有点令人困惑,它与编写代码没有任何关系.只是一个jitter知道的辅助函数,它将对这个辅助函数的调用直接编译到生成的机器代码中.JIT_Newarr1()将是您遇到的另一个,它会分配一个数组.
我不知道PerfView,请注意JIT_New()的执行时间可能包括执行垃圾收集所需的时间.当JIT_New()运行时,当#0堆已满时会发生这种情况.这可以解释大百分比,JIT_New()在其他方面非常快.您无能为力,这在任何托管程序中都是固定的开销.