Мастер-классы Саши Гольдштейна

12–13 октября 2017

Время: 10.30–18.00

Место: СКБ Контур, Малопрудная, 5

 

Саша Гольдштейн

Технический директор Sela Group, Microsoft C # MVP и Azure MRS, мировой эксперт по производительности  .NET-платформы, автор курсов.NET Debugging,  .NET Performance, Android Application Development и Modern C ++.  Специализируется на многоуровневых высокопроизводительных системах и мобильных разработках.

12 октября Мастер-класс для джуниоров и мидлов (опыт 1-2 года)

Работа с инструментами по оценке производственных показателей   .NET

 

Каждый хочет, чтобы его приложение работало как можно быстрее, но чтобы сделать это, необходимо применить методический подход. В данном курсе мы рассмотрим современные инструменты, которые необходимо использовать   .NET разработчикам для измерения, улучшения, сравнения и мониторинга работы их приложений во время разработки. Перед тем, как углубиться в изучение инструментов, мы обсудим методический подход к оптимизации работы, который включает в себя поиск перегруженного источника, разработку критериев, при необходимости, и настройку среды снижения производительности.

Мы рассмотрим профайлеры отбора образцов и инструментальные профайлеры для диагностики высокой загрузки ЦП и блокированных угроз, инструменты для диагностики высокого траффика памяти и сбора излишнего мусора, профайлеры памяти для выяснения, что поддерживает объекты онлайн и вызывает утечки памяти. Мы также обсудим передовой опыт управления   .NET практиками и сбором мусора, что поможет вам улучшить работу приложения. Каждая тема сопровождается небольшой лабораторной работой, дающей опыт непосредственной работы с приложением.

Задачи обучения:

  • Использование методического процесса для оптимизации работы.NET
  • Улучшение использования ЦП и общего времени работы путем использования профайлеров
  • Снижение времени прохождения памяти и сбора мусора

Темы:

  • Методический подход к оптимизации работы
  • Микро сопоставление с BenchmarkDotNet
  • Настройка проверки работы с Visual Studio
  • Отбор образцов и инструментальные профайлеры от Microsoft и JetBrains
  • Анализ параллельной обработки с Visual Studio Concurrency Profiler
  • Обзор сбора мусора и окончательная обработка.NET
  • Понимание трафика памяти с помощью профайлеров распределения от JetBrains и SciTech
  • Анализ снепшотов динамической памяти и утечек памяти с SciTech’s.NET Memory Profiler

Описание мастер-класса на английском языке

Everyone wants their application to be as fast as possible, but a methodical approach is required to truly make a difference in the right places. In this workshop, we will review the modern tools.NET developers should use to measure, improve, compare, and monitor the performance of their application at development-time. Before we dive into the tools, we'll discuss a methodical approach for performance optimization that includes finding the congested resource, developing benchmarks if necessary, and setting up a performance regression environment. We will look at sampling and instrumentation-based profilers for diagnosing high-CPU and blocked threads, tools for diagnosing high memory traffic andexcessive garbage collection, and memory profilers for figuring out what's keeping objects alive and causing a memory leaks. We will also discuss some best practices for.NET memory management and garbage collection, which can help improve application performance. Each topic will be accompanied by a short hands-on lab where you'll get to experience the tools first-hand.

Learning objectives:

  • Use a methodical process for.NET performance optimization
  • Improve CPU usage and overall running time by using profilers
  • Reduce memory traffic and garbage collection times

Topics:

  • Methodical approach for performance optimization
  • Micro-benchmarking with BenchmarkDotNet
  • Setting up a performance test with Visual Studio
  • Sampling and instrumentation profilers from Microsoft and JetBrains
  • Concurrency analysis with Visual Studio Concurrency Profiler
  • Overview of.NET garbage collection and finalization
  • Understanding memory traffic with allocation profilers from JetBrains and SciTech
  • Heap snapshots and memory leak analysis with SciTech’s.NET Memory Profiler

13 октября Мастер-класс для мидлов и синиоров (опыт >3 лет)

Производственные показатели и устранение ошибок  .NET приложений

Современные приложения очень комплексны. Их комплексность приводит к возникновению трудностей в диагностике производственных показателей, утечек памяти, сбоев и других проблем, которые проявляются только в производственной среде. На данных занятиях мы рассмотрим инструменты, библиотеки и передовой опыт настройки производственного мониторинга и диагностики. Во время подробных лабораторных занятий вы узнаете, как измерять производственные показатели в производственной среде без прерывания работы, как автоматически диагностировать и определять истинные причины сбоев и утечек памяти, как определять и показывать особые объекты в памяти без задержки или изменения кода приложения и как устанавливать предупреждения о производственных показателях.

Задачи обучения:

  • Конфигурирование производственной среды для автоматического мониторинга и отчетности
  • Диагностика работы ЦП и памяти в производстве
  • Приложения, устраняющие ошибки онлайн, в производстве без остановки целевого процесса

Темы:

  • Требования к производственному мониторингу и диагностике
  • Метод работы USE (Использование, насыщение, Ошибки) и вопросы для проверки
  • Постоянный мониторинг работы с использованием счетчиков работы Windows
  • Конфигурирование работы предупреждения счетчиков
  • Отслеживание событий для Windows и соответствующие инструменты (PerfView, WPR, WPA, etrace)
  • Сбор ETW следов по запросу и постоянно с помощью буферов памяти
  • Диагностика скачков загрузки ЦП и верхней памяти
  • Сбор и сравнение снепшотов динамической памяти для анализа утечек памяти
  • Файлы дампов и их типы
  • Автоматический сбор дампов при сбоях и сильных утечках памяти
  • Анализ базовых файлов дампов с Visual Studio и WinDbg
  • Автоматический анализ дампа с использованием библиотеки CLRMD и соответствующих инструментов (msos, PerfView)
  • Использование CLRMD для диагностики онлайн

Описание мастер-класса на английском языке

Modern applications are extremely complex, and with complexity come difficulties in diagnosing performance issues, memory leaks, crashes, and other problems that might manifest only in the production environment. In this workshop, we will review the tools, libraries, and best practices for setting up your production monitoring and diagnostic environment. Through a series of detailed hands-on labs, you will learn how to measure performance in a production environment without interrupting operations, how to automatically diagnose and detect the root cause of crashes and memory leaks, how to identify and display specific objects in memory without suspending or modifying the application code, and how to set up alerts for performance issues.

Learning objectives:

  • Configuring a production environment for automatic monitoring and reporting
  • Diagnosing CPU and memory performance issues in production
  • Live-debugging applications in production without suspending the target process

Topics:

  • Requirements for production monitoring and diagnostics
  • The USE (Utilization, Saturation, Errors) performance method and checklist
  • Continuous performance monitoring using Windows performance counters
  • Configuring performance counter alerts
  • Event Tracing for Windows and related tools (PerfView, WPR, WPA, etrace)
  • Collecting ETW traces on-demand and continuously with memory buffers
  • Diagnosing high-CPU and high-memory spikes
  • Collecting and comparing heap snapshots for memory leak analysis
  • Dump files and dump file types
  • Collecting dumps automatically for crashes or extreme leaks
  • Basic dump file analysis with Visual Studio and WinDbg
  • Automatic dump analysis with the CLRMD library and related tools (msos, PerfView)
  • Using CLRMD for live process diagnostics

Важная информация

  1. Мастер-классы будут на английском языке, но Саша понимает русский язык, поэтому сможет пояснить непонятные моменты и ответить на вопросы на русском языке. 
  2. На каждый мастер-класс нужно принести ноутбук с Windows 7 64-bit or later (Windows 10 preferred); Visual Studio 2015 or 2017; Windows 10 SDK (it works on Windows 7 as well); PerfView (from the Microsoft download center); Sysinternals tools (easiest to grab from live.sysinternals.com.
  3. Мастер-класс будет проходить с 10.00 до 18.00. В перерывах мы организуем кофе-брейки. Обед можешь взять с собой или посетить столовую в офисе.