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