трогая код?
Через какие-нибудь dotTrace или dotMemory или PerfCounters?
Суть такова: на проде крутится сервис, у которого проблемы с производительностью начинаются через 1-2 часа работы.
Подозрение падает на одну BlockingCollection, которая в third-party нагете лежит, и видимо консюмер не успевает обрабатывать её элементы.
Пока видится только такой способ: где-то при инициализации кода с этой коллекцией получить на неё ссылку и дёргать _collection.Count раз в N времени и писать в метрики.
Может, есть способ лучше?
.net core ?
снять дамп памяти и его анализировать, эт сложнее чем просто метрик накидать
Пока net fw 4.7 на винде, в процессе переезда
В студии вроже можно запускать инструменты профилирования без отладки. Тип подцепляться к процессу
Тогда можно ещё попробовать CLR Profiler
ага, это сделал, но хочется на регулярной основе такое делать dotMemory не позволяет программно лазить по снепшоту, а windbg я не осилил пока на должном уровне
ну наверное проще метрики налепить и оттуда и варинги с репортами и разрабов пинать
он End-Of-Life, но спасибо за наводку - dotnet-dump с net fw на винде хорошо справился
метрики есть, прост софт в суровой эксплуатации (от релиза "у нас" до деплоя "у них" может пара месяцев пройти), а фиксить уже сейчас надо
Обсуждают сегодня