Понимание значений данных инструментирования
Обновлен: Ноябрь 2007
Инструментирование представляет собой метод профилирования Сред. профилирования Visual Studio Team System Developer Edition, при использовании которого в начало и конец целевых функций профилируемого двоичного файла, а также до и после каждого вызова других функций из целевых функций вводится код. Введенный код регистрирует:
Интервал между этим событием сбора и предыдущим.
Выполняла ли операционная система какие-либо операции в интервале. Например, операционная система могла выполнять чтение с диска или запись на диск либо переключаться с целевого потока на поток в другом процессе.
Для каждого из интервалов средства анализа профилировщика воссоздают стек вызовов на момент интервала. Стек вызовов — это список функций, активных на процессоре в момент времени. Выполняется код только одной функции (текущей функции); другие функции представляют собой цепочку вызовов функций, которая привела к вызову текущей функции (стек вызовов).
Для каждой из функций в стеке вызовов на момент регистрации интервала средства анализа профилировщика добавляют интервал к одному или более из четырех значений данных функции. Средства анализа добавляют интервал к значению данных функции с учетом двух критериев:
Произошел ли интервал в коде функции или в коде дочерней функции (функции, вызываемой другой функцией).
Произошло ли в интервале событие операционной системы.
Значения данных для интервала функции или диапазона данных называются Затраченное инклюзивное время, Затраченное эксклюзивное время, Инклюзивное время приложения и Эксклюзивное время приложения.
Все интервалы функции добавляются к значению затраченного инклюзивного времени.
Если интервал произошел в коде функции, а не в коде дочерней функции, этот интервал добавляется к значению затраченного эксклюзивного времени для функции.
Если в течение интервала не происходило событий операционной системы, этот интервал добавляется к значению инклюзивного времени приложения.
Если в течение интервала не происходило событий операционной системы, и интервал произошел в коде выполнения кода функции, а не кода дочерней функции, этот интервал добавляется к значению эксклюзивного времени приложения.
В отчетах Сред. профилирования указываются совокупные значения показателей функций в ходе сеанса профилирования, а также в рамках процессов, потоков и двоичных файлов, которые использовались в ходе сеанса.
Затраченное инклюзивное время
Общее время, которое было затрачено на выполнение функции и ее дочерних функций.
Значения затраченного инклюзивного времени отражают интервалы, затраченные на выполнение кода самой функции, и интервалы, затраченные на выполнение дочерних функций целевой функции. Интервалы функции или ее дочерней функции, в течение которых происходило ожидание операционной системы, также учитываются в значении затраченного инклюзивного времени.
Затраченное эксклюзивное время
Общее время, которое было затрачено на выполнение функции, исключая время выполнения ее дочерних функций.
Значения затраченного эксклюзивного времени отражают интервалы, затраченные на выполнение кода самой функции, независимо от того, происходили ли в течение интервала события операционной системы. Значения затраченного инклюзивного времени не учитывают интервалы, затраченные на выполнение кода дочерних функций целевой функции.
Инклюзивное время приложения
Общее время, которое было затрачено на выполнение функции и ее дочерних функций, исключая время обработки событий операционной системы.
В значениях инклюзивного времени приложения не учитываются интервалы, затраченные на обработку событий операционной системы. Значения инклюзивного времени приложения отражают все остальные интервалы, затраченные на выполнение кода функции, независимо от того, были эти интервалы затрачены на выполнение кода самой функции или кода дочерних функций целевой функции.
Эксклюзивное время приложения
Общее время, которое было затрачено на выполнение кода функции, исключая время затраченное на выполнение кода ее дочерних функций и обработку событий операционной системы.
Значения эксклюзивного времени приложения не отражают интервалы, затраченные на обработку событий операционной системы, и интервалы, затраченные на выполнение дочерних функций целевой функции. Значения эксклюзивного времени приложения отражают только те интервалы, которые были затрачены на выполнение кода самой функции, и не отражают интервалы, затраченные на обработку событий операционной системы.
Затраченное инклюзивное время (в процентах)
Доля затраченных инклюзивных значений сеанса профилирования, включая затраченные инклюзивные значения для функции, модуля, потока или процесса.
100 * затраченное инклюзивное время для функции / затраченное инклюзивное время сеанса
Затраченное эксклюзивное время (в процентах)
Доля затраченных инклюзивных значений сеанса профилирования, включая затраченные эксклюзивные значения для функции, модуля, потока или процесса.
100 * затраченное эксклюзивное время для функции / затраченное инклюзивное время сеанса
Инклюзивное время приложения (в процентах)
Доля затраченных инклюзивных значений приложения сеанса профилирования, включая затраченные инклюзивные значения приложения для функции, модуля, потока или процесса.
100 * инклюзивное время приложения / инклюзивное время приложения сеанса
Эксклюзивное время приложения (в процентах)
Доля затраченных инклюзивных значений приложения сеанса профилирования, включая затраченные эксклюзивные значения приложения для функции, модуля, потока или процесса.
100 * эксклюзивное время приложения / инклюзивное время приложения сеанса
См. также
Задачи
Практическое руководство. Выбор метода сбора данных