Как узнать, нужно ли мне выполнять профилирование памяти? - PullRequest
0 голосов
/ 02 июня 2018

В настоящее время я выполняю выборку ЦП приложения ASP.NET Core, куда отправляю огромное количество запросов (> 500 КБ).Я вижу, что пиковый рабочий набор приложения составляет около ~ 300 МБ, что, на мой взгляд, невелико, учитывая количество запросов к приложению.Но то, что я наблюдал, - это огромное снижение количества запросов в секунду, когда я включаю определенные функции в моем приложении.

Вопрос: Должен ли я также выполнять профилирование памяти?Я спрашиваю об этом, потому что, хотя пиковый рабочий набор составляет ~ 300 МБ, может быть большое количество недолговечных объектов, которые могут быть созданы и собраны GC, и поскольку работа GC также считается ЦП, я должен также выполнить профилирование памяти, чтобы увидеть,Я слишком много выделяю?

1 Ответ

0 голосов
/ 11 июня 2018

Я отвечу на этот вопрос сам, основываясь на новой информации, которую я обнаружил.

Это основано на инструменте PerfView , который предоставляет информацию о GC и распределениях.enter image description here

Когда вы откроете представление GCStats , перейдите по ссылкам на интересующий вас процесс, и вы увидите информацию, подобную приведенной ниже: enter image description here

Обратите внимание, что представление имеет информацию, имеющую % CPU Time spent Garbage Collecting.Если вы видите, что это > 5%, то это должно вызывать беспокойство, и вы должны начать профилирование памяти.

...