Дмитрий Андреев dmitryan@microsoft.com witter:@dmandreev witter:@dmandreev.

Презентация:



Advertisements
Похожие презентации
Дмитрий Андреев Microsoft
Advertisements

Team System - фреймворк для автоматизации тестирования от Microsoft Футорняк Елена Apriorit Сообщество Тестировщиков Днепропетровска 29/09/2011.
ДонНУ, кафедра КТ, проф.В.К.Толстых WCF-службы Создание и тестирование.dll-библиотеки WCF-служб Из цикла лекций «Internet-технологии разработки приложений»
Платформа разработки ASP.NET Гайдар Магдануров t: e: m: +7.
Тренинг «Разработка веб-приложений на ASP.NET» Занятие 1 Знакомство с ASP.NET Гайдар Магдануров
MCP-клуб Белгород Роман Гонтарь Технический директор Группа компаний Денекси.
SQL 2012 И ГИБКИЕ МЕТОДЫ КОМАНДНОЙ РАЗРАБОТКИ C TFS Добро пожаловать в команду! Alexander Yakovlev
Премиум-версии: SQL Server 2008 R2 Parallel Data Warehouse SQL Server 2008 R2 Datacenter Основные версии: SQL Server 2008 R2 Enterprise SQL Server 2008.
Microsoft TechDays Цыганов Федор Softline.
Разработка RIA-приложений с помощью LightSwitch Эксперт по разработке Microsoft Россия Дмитрий Андреев.
Веб-платформа Microsoft Гайдар Магдануров t: e: m: +7 (905)
Визуализация и моделирование с использованием UML в Visual Studio 2010 Ultimate Евгений Чигиринский Microsoft.
Microsoft TechDays Сергей Попов Независимый разработчик.
Язык программирования C# Дмитрий Сошников
Методы оценки времени отклика задач в двухъядерных системах реального времени СоискательГуцалов Н.В. Научный руководитель д.т.н., профессор Никифоров В.В.
Предоставляет доступ к множеству современных технологий, таким как: Многопоточность Микропотоки Встроенный ассемблер UNICODE Обфускация Улучшает продуктивность.
Клиентские технологии Silverlight 3, Internet Explorer 8 Гайдар Магдануров t: e:
Microsoft TechDays Михаил Гоч MVP: Directory Services.
1 ©Павловская Т.А. Язык С# Курс «С#. Программирование на языке высокого уровня» Павловская Т.А.
Help: настройка Visual Studio.Net для создания консоль-приложения на основе Intel C++ с применением OpenMP. Инструменты «Практическое параллельное программирование.
Транксрипт:

Дмитрий Андреев

Анализ производительности Нагрузочное тестирование Конкурентный анализ

3

Возможно, мое приложение использует слишком много ресурсов процессора? Возможно приложение потребляет много памяти? Возможно в приложении есть много лишних I/O операций? Возможно осуществляются ненужные обращения к базе данных?

5 Sample Profiling Instrumentation Profiling.NET Memory Profiling Reports and Analysis VS 2005 VS 2008 VS Enhanced Analysis Capabilities Report Comparisons 64-Bit Support Developer Productivity Platform and Technology

Новые суммарные и функциональные отчеты Интеграция с редактором кода «Только мой код» Правила и рекомендации Профайлинг в прогрессе

Поддержка виртуализации Профайлинг слоев приложений Профайлинг JavaScript Профайлинг конкурентных систем Профайлинг HPC приложений

Отчеты как руководство к действию Графики производительности для выявления «бутылочных горлышек» приложения Поддержка Zoom для выявления деталей Визуализация стеков вызовов

Опциональная возможность для снижения «шумов» при анализе производительности Исключает точки анализа.NET Framrwork для фокусирования только на коде приложения Разработчик может включить некоторые уровни.NET Framework для более гибкого анализа Вызовы на уровень вниз (из приложения в Framework) Вызовы в верх (из Framework в приложение)

Набор рекомендации по: поддержке оптимальной производительности Анализу (количество тестов) Возможность расширений

Summary Call Tree Modules Caller/Callee Functions Lines Marks Processes Function Details IPs

13

Подготовка однопользовательского сценария Создание и запуск тестов оценки производительности Создание и отладка нагрузочных Web тестов Отчетность Фиксация проблем с использованием профайлера

Целевые тесты (Goal Based) Различные комбинации подтестов (Test Mix) Анализ всего спектра индикаторов производительности ОС Построение графиков для последующего анализа Подключение данных для контекстного взаимодействия тестов Сохранение результатов тестов Возможности расширения с помощью аддонов Подробности extend-visual-studio-2010-web-and-load-testing-with- transactional-tracing/ extend-visual-studio-2010-web-and-load-testing-with- transactional-tracing/

Load Agent VSTS Test Controller Target Server Collector Agent ASP.NET Profiler Load Agent

Новый сетевой драйвер Ограничения пропускной способности Введение ошибок и задержек Сценарии Однопользовательские тесты Автоматическое тестирование

Возможность подключать имитационный сетевой стек прямо в приложение Простые шаги Reference: %Program Files%\Microsoft Visual Studio 10.0\Common7\IDE\PrivateAssemblies\DataCollectors\x86\userapi.dll Конфигурация из Application.Config Инициализировать «подмену» стека в Initialize Детали stand-alone-network-emulator-using-vs2010-beta-1-release.aspxhttp://blogs.msdn.com/lkruger/archive/2009/06/24/creating-a- stand-alone-network-emulator-using-vs2010-beta-1-release.aspx

Visual Studio Recorder Listener Internet Explorer Browser Control Wininet Shim Wininet Browser RecorderWininet Recorder Browser events Intercepts wininet calls Merging Recorder Record events Recorder BHO Visual Studio Launches Internet Explorer

Visual Studio Recorder Listener Record events Internet Explorer Browser Control Wininet Shim Wininet Browser Recorder Wininet Recorder Browser events Intercept s wininet calls Merging Recorder Record events Recorder BHO Visual Studio Launches Internet Explorer WebTest RecorderPlugins Recorder Result Recorded Web Test

24

Многоядерные системы доминируют на рынке Разработчикам необходимо разрабатывать эффективные приложения под такие системы Проблемы Параллельное программирование сложно Множество путей решения, нет устоявшихся практик Visual Studio включает несколько средств PPL/ConcRT, TPL, PLINQ, средства отладки и оценки производительности

Тюнинг производительности параллельных систем Новые «проблемные области» и нюансы Это не новая проблема. Но она усложнена параллельностью

Традиционные средства требуют улучшений и новых подходов Временные отношения Взаимодействия с ОС, библиотеками, I/O Визуализация очень важна Фокус на параллельном исполнении Основные цели Улучшение продуктивности при параллельной разработке Поддержка native и managed кода 32/64 Vista/Windows7/Server 2008

Новое средство в IDE (Premium & Ultimate) Не требует инструментальной предварительной обработки исполняемых файлов Низкий порог нагрузки (меньше интерференции) Другие средства VS2010 Concurrency Resource Contention Tool (поддержка Windows XP) Windows Performance Toolkit Xperf, GPUView

Анализ конкурентных состояний Анализ блокировок тредов Анализ миграций тредов и нагрузки на ядра процессора Анализ зависимостей между тредами Анализ производительности по образцу (sample based)

Изучение или подтверждение сценария конкуренции Тюнинг или поиск возможностей для параллельного выполнения Понимание ситуации совместной работы с соседними процессами Входная точка для более детального анализа

31

Какой тред выполняет операции и почему Запущен: профайлинг Заблокирован: почему Предоставление данных для действий Позволяет пользователю зафиксировать проблемы Агрегация стоимостей блогирующих стеков вызовов Много возможностей для упрощения работы Фильтрация по тредам, времени, типу блокирования

33

Назначение: Информировать о том как треды физически исполняются на конкретных ядрах процессора Выделить ситуации массированной миграции тредов Проверка влияния параметров thread affinity Определение регионов «интересов» Там где треды демонстрируют «плохое поведение» Временные регионы Представления блокирования для последуюшего анализа

35

Назначение Позволяет разработчикам понять ситуации блокирования и зависимостей между тредами, вводя понятия «блокировщика» и «блокируемого» Предоставление возможностей для разрешения конфликтов Анализ зависимостей длинных цепей

Назначение: Предоставление возможностей по анализу кода нагружающего процессор Понимание того, в каком порядке выполняется целевая работа (при сложных параллельных сценариях)

Назначение: Механизм корреляции визуализации с фазами приложения Точный тайминг Достигается простым вызовом методов специального API Подробности

Возможности Visual Studio Team System 2010 позволяют уделять пристальное внимание вопросам производительности «из коробки». Единые интегрированные средства профайлинга, взаимодействия слоев приложения, нагрузочного тестирования и конкурентного анализа. Быстрые результаты повышающие качество разрабатываемых систем.

Windows Performance Analysis Center Visual Studio Profiler Team Blog Maxim Goldins Blog: Parallel Computing VS Concurrency Visualizer in VS Scenario Markers: erringTitle=Home