Высокий процессор при выделении памяти
Мы переживаем периоды времени, когда загрузка процессора нашего приложения достигает 100% в течение нескольких секунд. Я проследил это до двух методов CLR, которые вызываются при создании "новых" объектов. Первое существо ?
JIT_New@@YIPAVObject@@PAUCORINFO_CLASS_STRUCT_@@@Z
- Второе существо ?JIT_NewArr1@@YIPAVObject@@PAUCORINFO_CLASS_STRUCT_@@H@Z
Размеры создаваемых объектов относительно невелики. Я понимаю, что выделение памяти-это нечто большее, чем просто получение памяти, и что сбор мусора также может быть вовлечен. Я также понимаю, что это может спайкнуть процессор. Но почему всплеск длится так долго, до 5+ секунд? Любое понимание было бы очень ценно.Спасибо
Дэн
Что я уже пробовал:
Я обошел некоторые критические области, где выделение памяти вызывает высокий процессор, и это помогает. Дело в том, что теоретически это может произойти в любое время, и шунтирование-это скорее исправление симптома, а не решение проблемы.
Richard MacCutchan
Как и в случае с другим вашим вопросом, вам нужно выяснить, что происходит внутри вашего приложения, чтобы вызвать эти проблемы.
Kornfeld Eliyahu Peter
100% процессор - как и сам по себе-бессмыслен...Он должен быть проверен в связи с общим поведением системы (становится медленным, не реагирует)...
(В конце концов, один цикл подсчета может получить 100% CPU, если никакие другие задачи не требуют ресурсов в этот момент)