Dan_Suitor Ответов: 0

Высокий процессор при выделении памяти


Мы переживаем периоды времени, когда загрузка процессора нашего приложения достигает 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, если никакие другие задачи не требуют ресурсов в этот момент)

0 Ответов