Игорь Лабутин, 03.06public.jugru.org/dotnext/2016/spb/day_1/track_3/labutin.pdf · 15...
TRANSCRIPT
Игорь Лабутин, 03.06.2016 [email protected]
15 лет в разработке ◦ С/С++: Windows, Linux, QNX, Embedded
◦ .NET – последние 8 лет
Интересы ◦ Сети, протоколы обмена данными
◦ Проблемы производительности
2
Как любой фреймворк – не всегда работает как хочется
Отличные возможности диагностики ◦ Много полезного, но много лишнего ◦ Не всегда тривиально включить ◦ А главное: отфильтровать!
3
Как любой фреймворк – не всегда работает как хочется
Отличные возможности диагностики ◦ Много полезного, но много лишнего ◦ Не всегда тривиально включить ◦ А главное: отфильтровать!
3
Сегодня: Пишем логи Считаем вызовы Меряем трафик Интегрируемся в другие тулы
Sockets
Memory Mapped Files
Named Pipes WM_COPYDATA
4
Sockets
Memory Mapped Files
Named Pipes WM_COPYDATA .NET Remoting
COM DCOM
Web Services
4
Sockets
Memory Mapped Files
Named Pipes WM_COPYDATA .NET Remoting
COM DCOM
Web Services
Windows Communication
Foundation Первый релиз в составе .NET FW 3.0 21.11.2006
4
Address Binding Contract
5
Address Binding Contract
Посмотрим код
5
Address Binding Contract
Посмотрим код
Приложение есть, но оно не работает!
5
WCF логи – подробней не бывает Зачастую подробностей многовато
6
WCF логи – подробней не бывает Зачастую подробностей многовато
6
Решение – logs on demand
Увы, только для серверов
В редких случаях может быть неполным
Работает без останова сервера
Производит меньший объем логов для анализа
7
8
Ограниченный
набор
Есть везде
Скорость? Время?
Память? CPU? Сеть?
9
Скорость? Время?
Память? CPU? Сеть?
9
Зависит от требований!
10
Основные в нашей практике
Мало удобных средств
Мало средств? Напишем своё!
10
Основные в нашей практике
Мало удобных средств
Легко использовать
Не требует изменений в приложении
Узкоспециализировано
11
12
WCF сам по себе не всегда полезен ◦ Нужны более высокоуровневые операции
Минимальное участие пользователя
Работа на боевых серверах
12
WCF сам по себе не всегда полезен ◦ Нужны более высокоуровневые операции
Минимальное участие пользователя
Работа на боевых серверах
Если используете ETW – вам в PerfView
Можно расширить своими надстройками!
13
Если используете ETW – вам в PerfView
Можно расширить своими надстройками!
13
WCF диагностировать можно и нужно ◦ Способов больше одного
Все на так сложно как кажется на первый взгляд
Даже «low-level» инструменты могут быть пригодны для решения высокоуровневых задач
14
WCF: Analytic Tracing with ETW (http://bit.ly/1P3I04x)
Метаданные ETW провайдеров
Microsoft TraceEvent Library (@ http://nuget.org)
PerfView ◦ Встроенная помощь
◦ https://channel9.msdn.com/Series/PerfView-Tutorial
15
E-mail: [email protected] 16