We are experiencing periods of time when CPU utilization of our application goes to %100 percent for several seconds. I tracked this down to two CLR methods which are called when ‘new’ objects are created. The first being ?
JIT_New@@YIPAVObject@@PAUCORINFO_CLASS_STRUCT_@@@Z. The second being ?
JIT_NewArr1@@YIPAVObject@@PAUCORINFO_CLASS_STRUCT_@@H@Z. The size of the objects being created are relatively small. I understand that there is more to memory allocation then just getting memory, and that Garbage Collection might also be involved. I also understand that it might spike the CPU. But why would the spike last so long, upwards to 5+ seconds? Any insight would be greatly appreciated.
What I have tried:
I’ve bypassed some of the critical areas where memory allocation is causing high CPU, and it helps. Thing is, it can theoretically happen at any time and the bypass is more of a patch to the symptom, not a solution to the problem.