Поделиться через


Анализ данных о производительности JavaScript в приложениях для Магазина Windows

Этот раздел описывает данные о производительности для кода JavaScript в представлениях отчетов средства профилирования Microsoft Visual Studio Express 2012 для Windows 8. Информацию о сборе данных о производительности кода JavaScript см. в одном из следующих разделов:

Содержание раздела

В этом разделе содержатся следующие подразделы.

Viewing performance reports

Типы данных профилирования

Типы представлений отчетов о профилировании

Представления отчетов о профилировании

  • Представление "Сводка"

  • Представление "Сведения о функции"

  • Представление "Дерево вызовов"

  • Представление "Вызывающий/вызываемый"

  • Представление "Модули и функции"

Настройка представлений сетки данных

Откройте файл отчета о профилировании

При остановке сеанса профилирования в среде IDE Visual Studio данные о производительности автоматически отображаются в документе.

Чтобы открыть файл отчета о профилировании (.vspx), созданный инструментом командной строки VSPerf или сохраненный после предыдущего сеанса профилирования, выполните следующие действия:

  1. Если нужно, откройте Visual Studio.

  2. В меню Файл выберите пункт Открыть файл.

  3. В диалоговом окне Открыть файл перейдите к папке, содержащей файл отчета профилирования, затем выберите файл отчета.

Типы данных профилирования

Данные профилирования функции включают полное, среднее, минимальное и максимальное время, а также процентные значения. Вычисление данных позволяет получить два набора значений времени:

  • Значения Затраченное инклюзивное — это общее количество времени, которое заняло выполнение функции.

  • Значения Затраченное эксклюзивное — время, которое функция потратила на выполнение только собственного кода. В значения не входит время, затраченное на выполнение дочерних функций.

Типы представлений отчетов о профилировании

В представлениях отчетов о профилировании данные отображаются двумя способами.

  • Представления графа вызовов отображают информацию о функциях в контексте путей выполнения. Дерево Горячий путь в окне сводки отображает путь выполнения, при котором приложение суммарно в ходе профилирования потратило на выполнение наибольшее время. Представление "Дерево вызовов" — граф вызовов для всех функций в сеансе профилирования. В представлениях "Сведения о функции" и "Вызывающий/вызываемый" в центре внимания находится выбранная функция. Кроме того, отображаются функции, вызвавшие выбранную функцию, и функции, которые были ей вызваны. Представления графа вызовов помогают обнаружить алгоритмические проблемы производительности

  • Представления списка функций сортируют и представляют в виде списка функции по выбранным столбцам. В списке Функции с максимальной индивидуальной работой на странице сводки показаны функции, которые потратили максимальное время на выполнение собственного кода, за исключением времени, потраченного на вызов дочерних функций. Представление "Модули" группирует функции по файлам исходного кода JavaScript, в которых они содержатся, и по модулям для остальных языков. Представление "Функции" — это не что иное, как единый список функций.

Представления отчетов о профилировании

Hh780915.collapse_all(ru-ru,VS.110).gifПредставление "Сводка"

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

  • Дерево Горячий путь отображает стек вызовов, при котором приложение суммарно в ходе профилирования потратило на выполнение наибольшее время. Если понять, почему на выполнение этого алгоритма требуется так много времени, можно найти пути оптимизации системы.

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

Hh780915.collapse_all(ru-ru,VS.110).gifПредставление "Сведения о функции"

Линейчатая диаграмма Распределение затрат показывает связи между выбираемой функцией и вызывающими функциями, выполнившими выбранную, а также между выбранной функцией и вызванными ею функциями.

  • На панели "Вызывающие функции" отображаются функции, вызывавшие выбранную функцию. Размер модуля вызывающей функции указывает, сколько общего времени выполнения выбранной функции было потрачено на взаимодействие с вызывающей функцией.

  • Полоса Выбранная функция указывает относительную часть общего времени выполнения, потраченного выбранной функцией на выполнение собственного кода (модуль Тело функции) и количество времени, потраченного на выполнение функций, которые были вызваны выбранной функцией.

  • На панели Вызываемые функции отображаются функции, вызванные выбранной функцией. Размер модуля вызываемой функции указывает, сколько общего времени выполнения вызванной функции было потрачено на взаимодействие с вызываемой функцией.

Hh780915.collapse_all(ru-ru,VS.110).gifПредставление "Дерево вызовов"

Можно воспользоваться представлением "Дерево вызовов", чтобы изучить пути выполнения функции, пересеченные в приложении. Корнем дерева является точка входа в приложение. В каждом узле функции перечислены все вызванные в нем функции и содержатся данные о производительности, связанные с этими вызовами функций. Значения функций в представлении "Дерево вызовов" приведены для экземпляров функций, вызванных родительской функцией в дереве вызовов. Значения в процентах — это отношение значения времени экземпляров функции к общему времени выполнения сеанса профилирования.

Чтобы сосредоточиться на одном узле представления дерева вызовов, выберите этот узел и щелкните Задать корень в контекстном меню. После задании корневого узла из представления удаляются все записи, кроме поддеревьев выбранного узла. Чтобы сбросить корневой узел и вернуть предыдущее значение, выберите Сбросить корень в контекстном меню.

Столбцы представления "Дерево вызовов"

Имя столбца

Описание

Количество вызовов

Количество вызовов функции родительской функцией в дереве вызовов.

% затраченного инклюзивного времени

Доля времени в процентах от общего времени выполнения. потраченного на выполнение данной функции.

% затраченного эксклюзивного времени

Доля времени в процентах от общего времени выполнения. потраченного на выполнение текста функции. Время выполнения функций, которые были вызваны выбранной функцией, не включается в это значение.

Среднее затраченное инклюзивное время

Среднее время, затраченное на выполнение данной функции.

Среднее затраченное эксклюзивное время

Среднее время, затраченное на выполнение данной функции. Время выполнения функций, которые были вызваны выбранной функцией, не включается в это значение.

Имя модуля

Для функций JavaScript — имя исходного файла, содержащего данную функцию. В других случаях — имя модуля (DLL или EXE), содержащего функцию.

Hh780915.collapse_all(ru-ru,VS.110).gifПредставление "Вызывающий/вызываемый"

Представление "Вызывающий/вызываемый" — древовидное представление данных в линейчатой диаграмме "Подробности распределения затрат для функции" в представлении "Сводка", включающее все данные о времени. Используйте представление "Вызывающий/вызываемый", чтобы проанализировать связь между выбранной функцией и вызвавшими ее функциями, а также функцией, которую вызвала выбранная функция. Представление "Вызывающий/вызываемый" состоит из трех сеток.

Сетка Текущая функция — отображается в средней таблице и показывает данные профилирования выбранной функции. Значения включают все вызовы функции. Функции, вызывавшие текущую функцию отображаются в верхней сетке, а Функции, вызывавшиеся текущей функцией — в нижней. Значения для текущей функции — результаты по всем вызовам функции. Значения вызывающей и вызываемой функций включают только время, которое было потрачено на вызов или при вызове выбранной функцией.

Для перехода по деревьям вызовов функции дважды щелкните вызывающую или вызываемую функцию. Функция, по которой выполнен двойной щелчок, становится новой выбранной функцией. Теперь видны ее вызывающие и вызываемые функции.

Столбцы представления "Вызывающий/вызываемый"

Имя столбца

Описание

Количество вызовов

  • Для выбранной функции — общее количество вызовов функции в сеансе профилирования.

  • Для вызывающей функции — количество вызовов к выбранной функции от вызывающей функции.

  • Для вызываемой функции — количество вызовов к вызываемой функции от выбранной функции.

% затраченного инклюзивного времени

  • Для выбранной функции — процент общего времени выполнения профилирования, затраченного на выполнение выбранной функции. Значение включает время, потраченное при выполнении функций, которые были вызваны выбранной функцией.

  • Для вызывающей функции — процент общего времени выполнения профилирования, использованный экземплярами вызывающей функции, вызвавшими выбранную функцию.

  • Для вызываемой функции — процент общего времени выполнения профилирования, использованный экземплярами вызываемой функции, вызванными выбранной функцией.

% затраченного эксклюзивного времени

  • Для выбранной функции — процент общего времени выполнения профилирования, затраченного на выполнение выбранной функции. Значение исключает время, потраченное при выполнении функций, которые были вызваны выбранной функцией.

  • Для вызывающей функции — процент общего времени выполнения профилирования, использованный экземплярами вызывающей функции, вызвавшими выбранную функцию, включая время, потраченное функциями, вызванными вызывающей функцией.

  • Для вызываемой функции — процент общего времени выполнения профилирования, использованный экземплярами вызываемой функции, вызванными выбранной функцией, включая время, потраченное функциями, вызванными вызываемой функцией.

Среднее затраченное инклюзивное время

  • Для выбранной функции — среднее время выполнения всех экземпляров выбранной функции.

  • Для вызывающей функции — среднее время выполнения всех экземпляров вызывающей функции, вызвавших выбранную функцию.

  • Для вызываемой функции — среднее время выполнения всех экземпляров вызываемой функции, вызванных выбранной функцией.

Среднее затраченное эксклюзивное время

  • Для выбранной функции — среднее время выполнения всех экземпляров выбранной функции. Это значение исключает время, потраченное при выполнении функций, которые были вызваны выбранной функцией.

  • Для вызывающей функции — среднее время выполнения всех экземпляров вызывающей функции, вызванных выбранной функцией, за исключением времени, потраченного в функциях, вызванных вызывающей функцией.

  • Для вызываемой функции — среднее время выполнения всех экземпляров вызываемой функции, вызванных выбранной функцией, за исключением времени, потраченного в функциях, вызванных вызываемой функцией.

Имя модуля

Для функций JavaScript — имя исходного файла, содержащего данную функцию. В других случаях — имя модуля (DLL или EXE), содержащего функцию.

Hh780915.collapse_all(ru-ru,VS.110).gifПредставление "Модули и функции"

В представлении "Модули и функции" отображаются подробные сведения о данных профилирования функций, указанных в отчете профилирования. Представление "Модули" организует функции JavaScript в соответствии с содержащими их исходными JS-файлами. Другие функции перечислены в модуле (например, .dll). В представлении "Функция" перечислены все функции без какой-либо иерархической последовательности. Очень часто найти собственный код в представлении "Модули" проще, чем в представлении "Функции", однако последнее представление больше подходит для сравнения функций.

Столбцы представления "Модули и функции"

Имя столбца

Описание

Количество вызовов

Количество вызовов функции.

% затраченного инклюзивного времени

Процент общего времени выполнения в ходе сеанса профилирования, потраченного при выполнении функции.

% затраченного эксклюзивного времени

Процент общего времени выполнения, потраченного при выполнении функции. Это значение исключает время, потраченное при выполнении функций, которые были вызваны функцией.

Среднее затраченное инклюзивное время

Среднее время выполнения функции.

Среднее затраченное эксклюзивное время

Среднее время выполнения функции. Это значение исключает время выполнения вызванных функций.

Имя модуля

Для функций JavaScript — имя исходного файла, содержащего данную функцию. В других случаях — имя модуля (DLL или EXE), содержащего функцию.

Настройка представлений сетки данных

Можно добавлять или удалять столбцы данных и изменять порядок их отображения. Щелкните правой кнопкой мыши строку данных и выберите Добавить или удалить столбцы.

Примечание

Если метод инструментирования используется для управляемого и машинного кода, дополнительные сведения о выполнении кода собираются и отображаются в полях данных о времени: Инклюзивное время приложения (а также "Минимальное инклюзивное время приложения" и др.) и Эксклюзивное время приложения (а также "Минимальное эксклюзивное время приложения" и др.). Эти сведения недоступны в языке JavaScript, поэтому значения поля Приложение совпадают со значениями затраченного времени. Не рекомендуется добавлять эти поля к представлению.

Дополнительные столбцы данных профилирования

Имя столбца

Описание

Имя функции

Имя функции.

Адрес функции

Адрес функции.

Номер строки функции

Номер строки, на которой эта функция начинается в исходном файле.

Количество вызовов

Общее количество вызовов этой функции.

Исходный файл

Исходный файл, содержащий определение данной функции.

Имя модуля

Имя модуля, содержащего функцию.

Путь к модулю

Путь к модулю, содержащему функцию.

Идентификатор процесса

Идентификатор процесса (PID) сеанса профилирования.

Имя процесса

Имя процесса.

Исключающие временные издержки на зонды

Дополнительные временные затраты для этой функции, вызванные инструментированием. Они не включают служебные данные в функциях, которые были вызваны данной функцией. Из всех исключающих значений времени уже вычтены дополнительные временные затраты на зонды.

Включающие временные издержки на зонды

Дополнительные временные затраты для этой функции и ее дочерних функций, вызванные инструментированием. Они включают дополнительные временные затраты в функциях, которые были вызваны данной функцией. Из всех включающих значений времени уже вычтены дополнительные временные затраты на зонды.

Затраченное эксклюзивное время

Общее затраченное эксклюзивное время для всех вызовов этой функции.

Максимальное затраченное эксклюзивное время

Максимальное затраченное эксклюзивное время для вызова данной функции.

Минимальное затраченное эксклюзивное время

Минимальное затраченное эксклюзивное время для вызова данной функции.

Затраченное инклюзивное время

Общее затраченное инклюзивное время для всех вызовов этой функции.

Максимальное затраченное инклюзивное время

Максимальное затраченное инклюзивное время для вызова данной функции.

Минимальное затраченное инклюзивное время

Минимальное затраченное инклюзивное время для вызова данной функции.