Инструменти за производителност на Windows - Блог на екипа на Internet Explorer

Microsoft Windows Vista и Windows 7 имат мощна рамка, нареченаПроследяване на събитияWindows(Проследяване на събития за Windows), която събира данни за системата и производителността. Windows Event Tracing или накратко ETW позволява на операционната система Windows и приложенията ефективно да генерират събития. Има стотици събития, които могат да бъдат записани по време на тяхното изпълнение и впоследствие анализирани със специални инструменти.

Windows Performance Tools или WPT ви позволява да улавяте, визуализирате и анализирате ETW следи в операционната система. WPT е включен в Windows 7 SDK и може да бъде изтеглентук. Можете да съкратите инсталацията, като оставите само "Windows Performance Toolkit":

производителност

Първи профил

Веднага след като инсталацията на WPT инструментите приключи, можете да започнете да анализирате производителността на браузъра.

Нека започнем с измерване на скоростта на Internet Explorer, когато навигирате доhttp://www.bing.com

1. Стартирайте Internet Explorer и отидете на http://www.microsoft.com.

2. Стартирайте команден ред с повишени права

3. От командния ред изпълнете командата:

xperf -start mytrace -on PerfTrack

4. В IE отидете наhttp://www.bing.comи изчакайте пет секунди, след като страницата се зареди и браузърът спре.

5. Спрете проследяването, като изпълните командата:

xperf -stop mytrace -d mytrace.etl

6. Сега стартирайте Windows Performance Analyzer, включен в WPT Toolkit, като стартирате:

Последната команда стартира WindowsPerformance Analyzer и отваря файла mytracve.etl, съдържащ ETW събитията, записани по време на трасирането.

инструменти

Windows Performance Analyzer показва записани събития. В нашия пример сте записали събития от няколко различни доставчика. Разгъването на списъка "ProviderIds" ще покаже всичките 4 доставчика:

  • PerfTrackMetadata
  • WinSATA оценка
  • Microsoft-PerfTrack-IEFRAME
  • Microsoft-PerfTrack-MSHTML

производителност

По-долу ще говорим повече за доставчиците.

Разгледайте времевата линия по-долу, показваща времето в секунди. Сега ще преминем към групата събития. Има два начина да направите това: a) Ctrl + превъртане на колелцето на мишката или b) щракнете + плъзнете, за да изберете времевия диапазон, след което щракнете с десния бутон върху селекцията и изберете Zoom To Selection.

производителност

След това трябва да задържите курсора на мишката върху събитието, за да видите подсказка с подробности за събитието. Например, задържането на мишката над първата жълта точка показва следната подсказка:

инструменти

НизътEventNameуказва, че това събитие е "Навигация - Старт", което е началото на навигацията към bing.com.

Третата жълта точка е събитието "Навигация - Стоп", което показва, че навигацията до www.bing.com е завършена.

За да получите представа за изминалото време, нека измерим времето за преход след пренасочване.

Докато държите натиснат бутона на мишката, преместете показалеца от втората жълта точка към третата. Когато се движите, подсказка показва времето между две точки:

windows

ЗАБЕЛЕЖКА: Времето между началните и крайните събития не епредназначен за сравнение с други браузъри. Различните браузъри могат да определят и наименуват събития, както намерят за добре. Сравняването на изминалите времена има смисъл само за един браузър. Опитът да ги сравнявате в различни браузъри (или дори различни версии на един и същ браузър) няма смисъл. Например ETW събития, заснети в различен браузър, може да имат едни и същи имена „Начало на навигация“ и „Край на навигация“, но означават напълно различни аспекти на твърде общия термин „Навигация“.

Въпреки това е интересно да се сравни изминалото време с резултатите от други следи при същите условия и със същия браузър. Например, интересно е да сравните времето за посещение на bing.com и на друг уебсайт. Тъй като всички страници са много различни една от друга, изразходваното време също ще бъде различно. По-късно ще разгледаме по-подробно за какво точно се изразходва времето.

Доставчици

По-рано споменахме доставчици, които са източник на събития, заснети с помощта на Windows Performance Tool Kit. В предишния пример казахме на xperf да улавя събития от доставчика на "PerfTrack", като посочи "PerfTrack" в командата

xperf -start mytrace -on PerfTrack

Можем да използваме Windows Performance Tool Kit, за да заснемем и анализираме всеки аспект на операционната система Windows. Всеки компонент на Windows улавя много ETW събития, така че общият брой събития в Windows е хиляди. Освен това всяко приложение може да донесе още повече събития, което лесно води до претоварване с информация.

В зависимост от конкретния сценарий, ние избираме събития от набор от доставчици. Това ни позволява да фокусираме вниманието си върху значими събития.

Списъкът с доставчици се показва чрез изпълнение на следната команда:

Пълният списък съдържа много доставчици, включително флагове на ядрото (параметри на ядрото) и групи на ядрото (групи на ядрото), разположени в самия край на списъка. Следните доставчици са най-интересни при работа с Internet Explorer:

  • Microsoft-IE
  • Microsoft-IEFRAME
  • Microsoft-PerfTrack-IEFRAME
  • Microsoft-PerfTrack-MSHTML

А също и Kernel Group:

Можем да използваме множество доставчици на потребителски режим едновременно. Например:

xperf -start mytrace -на Microsoft-IE+Microsoft-IEFRAME+Microsoft-PerfTrack-IEFRAME+Microsoft-PerfTrack-MSHTML

За да научите как да използвате както потребителски режим, така и доставчици на режим на ядрото, вижтеПример 2, разположен в средата на страницата.

Скриптове за проследяване

Когато анализирате производителността на всеки компонент, трябва да стартирате проследяването на производителността много пъти. За да улесним този процес и да улесним заснемането на същите следи, ние използваме прост скрипт. За примерите в тази статия използвахмеtrace.cmd:

ако не @%1@ == @@ set session=%1

xperf -start %session% -on PerfTrack

ако не ниво на грешка 0 goto :eof

echo Проследяване на производителността стартира.

echo Когато приключите с действията на профила,

xperf -stop %session% -d %session%.etl

ако не ниво на грешка 0 goto :eof

стартирайте xperfview %session%.etl

Основният механизъм на скрипта:

  • Стартирайте скрипта от команден ред с повишени права
  • Възпроизвеждане на скрипта, който ще бъде заснет, докато скриптът чака нашите действия
  • Натиснете който и да е клавиш от командния ред, за да може скриптът да завърши заснемането и да покаже резултата

По-долу е малко по-сложенtracek.cmdскрипт, който също улавя събития в режим на ядрото:

ако не @%1@ == @@ set session=%1

xperf -on Latency -f %session%kernel.etl -start %session% -on Microsoft-IE+Microsoft-IEFRAME+Microsoft-PerfTrack-IEFRAME+Microsoft-PerfTrack-MSHTML -f %session%user.etl

ако не ниво на грешка 0 goto :eof

echo Проследяване на производителността стартира.

echo Когато приключите с действията на профила,

xperf -стоп %сесия%

ако не ниво на грешка 0 goto :eof

ако не ниво на грешка 0 goto :eof

xperf -merge %session%user.etl %session%kernel.etl %session%combined.etl

ако не ниво на грешка 0 goto :eof

стартирайте xperfview %session%combined.etl

Когато проследим с втория, „по-сложен“ сценарий, Windows Performance Analyzer показва цялата система в по-големи подробности по време на заснемането, включително използването на процесора, използването на процесора от процеси, дисков вход/изход и използване на диска, живот на процеса, сривове и общите събития, които обсъдихме по-горе. Всеки от тези елементи може да бъде също толкова важен, колкото използването на процесора при определяне на производителността.

производителност

Можем да изберем коя от графиките да покажем, като щракнем върху черната фигура в левия край, което отваря "Списък с рамки":

инструменти

Можем също да наслагваме няколко графики една върху друга, за да получим комбиниран изглед. За да направите това, щракнете с десния бутон върху графиката и изберете друга графика в секцията „Наслагване на графика“.

осева таблица

Сега ще разгледаме напълно различен режим на Windows Performance Analyzer, изгледът „Обобщена таблица“. Всяка диаграма има изглед на обобщена таблица, базиран наданни от диаграмата. Нека вземем за пример режима на обобщена таблица на диаграмата на събитията „Общи събития“. За да направите това, щракнете с десния бутон върху диаграмата и изберете "Обобщена таблица":

инструменти

производителност

преминаване на стека

Обхождането на стека в профилирането на производителността отваря нови възможности, тъй като позволява анализ на базата на "тегло", което означава приблизителното количество консумирани ресурси на процесора. Тъй като данните за профила са базирани на извадка, информацията за използването на процесора винаги ще бъде статистическо приближение.

За да активираме обхождането на стека, трябва да ги активираме за събитията, от които се нуждаем. В този случай се интересуваме от събитие, което е част от групата "Латентност". За повече информация относно активирането на обхождане на стека на събитие вижте съответнияраздел в Xperf.

Цял свят за изследване

В екипа за разработка на IE ежедневно използваме Windows Performance Toolkit, заедно с вътрешни инструменти за измерване и проследяване на производителността на Internet Explorer. Изтеглете този набор от инструменти и започнете да наблюдавате производителността на браузъра с Windows Performance Toolkit на вашите собствени системи.

Валтер фон Кох,

Ръководител на екипа за ефективност на IE