Как я могу посмотреть по какой причине один из моих методов в .net приложении иногда выполняется не за около 50-60ms, а за 800-1000ms.
Иногда это раз в 100 тыс вызовов или раз в 6 тыс. Т.е довольно редко.
Т.е такое впечатление что это либо срабатываение garbage collector, либо какой то системный вызов долго выполняется, либо что то еще в .net runtime.
Профайлер мне даст только время выполнения методов, это спасет при стабильно медленно выполняющемся коде.
Системные вызовы я могу посмотреть с помощью некого эквивалента strace ,WinDbg Logger.
А как мне выяснить что происходить на .Net уровне?
Хочу убедиться нет ли этой задержки на .Net runtime уровне.
Ситуация проявляется на 2 ядерной машине только, на 4 ядерной уже нет такого эффекта.
На компьютере установлен и антивирус, и какие то корпоративные spyware. Вообщем куча всего.
Кажется что просто не хватает ресурсов системе и иногда мой поток просто надолго блокируется.
Но руководство хочет видеть конкретную причину где затык.