logo
Профилировщик приложений

4.2 Интерфейс

Так выглядит окно экземпляра пользовательского приложения «Профилировщик»:

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

На диалоге есть три группы:

Группа «Информация о процессе»:

ProcessID - идентификатор процесса;

ParentID - идентификатор процесса-родителя;

BasePriority - базовый приоритет по-умолчанию для потоков процесса;

ThreadCount - количество потоков процесса;

KernelTime - суммарное время, проведённое в режиме ядра потоками процесса, 1 единица равна 100 нс;

UserTime - суммарное время, проведённое в пользовательском режиме потоками процесса, 1 единица равна 100 нс.

Группа «Информация о потоке»:

ThreadID - идентификатор потока;

BasePriority - базовый приоритет потока;

Priority - приоритет потока;

ContextSwitches - количество переключений контекста, осуществлённых потоком;

KernelTime -время, проведённое в режиме ядра (1 единица равна 100 нс);

UserTime - время, проведённое в пользовательском режиме (1 единица равна 100 нс).

WaitTime - момент времени, когда поток перешёл в состояние ожидания (отсчёт ведётся от момента запуска системы).

Группа «Контекст потока»:

Здесь представлен аппаратный контекст потока. Большинство приложений ожидают ввода от пользователя. При наблюдении за потоками такого процесса можно вообще не увидеть какие-либо изменения. Поэтому для более наглядного просмотра стоит запускать задачи, требующие больших вычислительных затрат. Например, WinAmp, с помощью которого можно проигрывать музыку - тот поток, который за это отвечает, сразу виден по изменению регистров общего назначения. Но наиболее частые изменения в регистрах различного назначения происходят в по-настоящему «тяжеловесных» задачах, к примеру, можно взять курсовой проект по Машинной графике.