Диагностический монитор

Диагностический монитор - интегрированный диагностический центр в ArcGIS Pro. Информация о состоянии, журналы и события представляются и постоянно обновляются в Диагностическом мониторе во время работы ArcGIS Pro. Диагностический монитор содержит набор вкладок и индикаторов состояния. В настоящее время Диагностический монитор включает вкладки Счетчик, Задачи и Журнал.

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

Обзор Диагностического монитора

Примечание:

Диагностический монитор доступен во всех основанных на ArcGIS Pro продуктах, и его не следует путать в ArcGIS Monitor.

Включение Диагностического монитора

Диагностический монитор можно запустить с помощью сочетания клавиш Ctrl + Alt + M или запустив ArcGIS Pro из командной строки с параметром /enablediagnostics. В последнем случае диалоговое окно Диагностический монитор будет изначально свернуто на панели задач Microsoft Windows.

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

Обзор архитектуры ArcGIS Pro

ArcGIS Pro - 64-битное многопоточное модульное приложение. Функциональные подсистемы загружаются по запросу и выполняют определенные действия, например, вычисление буфера или рендеринг карты, в рабочих потоках или в отдельных рабочих процессах. В большинстве случаев логические части работы (операции) при выполнении объединяются в одну или несколько задач. Задачи играют основную роль в процессе работы ArcGIS Pro и занимают видное место в Диагностическом мониторе.

Выделенный поток отвечает за визуализацию элементов пользовательского интерфейса приложения и обработку пользовательского ввода с помощью клавиатуры и мыши. Пока операция выполняется в одном из рабочих потоков, поток графического пользовательского интерфейса (GUI) обеспечивает обратную связь, соответствующую порядку выполнения операции, а также возможность отмены операции, если она применима. Сам Диагностический монитор работает в отдельном потоке, независимом от GUI. Это позволяет диалоговому окну Диагностический монитор оставаться активным, даже если поток графического интерфейса зависнет.

Рабочие потоки ArcGIS Pro делятся на семейства, соответствующие определенным функциональным областям.

  • Основные потоки - набор из четырех рабочих потоков, который управляет Картографической информационной моделью (CIM), основным хранилищем состояния конфигурации в текущем загруженном проекте. Эти потоки также помогают ускорить рендеринг карты. Определенные виды взаимодействия с пользователем во время выполнения операций в Основных потоках запрещены.
  • Фоновые потоки - эти потоки выполняют широкий спектр операций, не зависящих от состояния CIM и выполняемых отдельно в фоновом режиме, пока пользователь осуществляет другие действия. Задачи, отнесенные в Фоновый поток высокого приоритета, работают быстрее и имеют приоритет над задачами Фонового потока низкого приоритета. Поток Общие фоновые процессы используется для особых случаев, в которых наборы задач должны выполняться в одном и том же согласованном потоке с течением времени.
  • Потоки геообработки - этот поток используется для выполнения фоновых операций геообработки. Внутри программы для выполнения операции Поток геообработки часто взаимодействует с другими потоками.
Обзор потоков Диагностического монитора

Область Состояния

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

Индикаторы Состояния

Индикаторы Состояния в Диагностическом мониторе

ЭлементОписание
1

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

2

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

3

Желтый означает, что скорость выдачи задач превысила 10 в секунду.

4

Зеленый - если в приложении в настоящее время активен один или несколько HTTP-запросов.

5

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

6

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

7

Желтый - если панель в настоящее время занята. Пока панель занята, некоторые кнопки и инструменты могут быть недоступны.

8

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

9

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

10

Зеленый цвет означает, что в данный момент выполняется операция геообработки. Этот индикатор будет гореть независимо от того, выполняется ли операция геообработки в фоновом режиме или на переднем плане.

Индикаторы действий потока

У каждого из упомянутых выше потоков есть соответствующий индикатор действий в области состояния Диагностического монитора. Индикаторы состояния потока будут зелеными, если связанный поток в настоящее время работает, и серый, если поток неактивен (спящий). Индикаторы состояния потока могут быть темно-серыми, если центральному процессору хост-компьютера не хватает ядер для поддержки дополнительных потоков.

Вкладки Диагностического монитора

Диагностический монитор состоит из вкладок Счетчик, Задачи и Журнал. На вкладке Счетчик перечислены внутренние счетчики. На вкладке Задачи отображаются недавние задачи. На вкладке Журнал отображается средство просмотра журнала событий.

Вкладка Счетчик

На вкладке Счетчик содержится список именованных внутренних счетчиков. Каждый счетчик связан с графиком над списком. При выборе счетчика в списке график обновляется и на нем отобразятся исторические значения этого счетчика за последние 20 секунд.

Вкладка Счетчик Диагностического монитора

В списке счетчиков есть такие полезные метрики, как потребление памяти, число потоков, количество HTTP-запросов и количество загруженных DLL. Некоторые счетчики требуют дополнительных пояснений:

  • Текущая скорость выполнения задач - текущая скорость, с которой задачи ставятся в очередь в основные потоки. Большое значение может указывать на то, что для выполнения операции выдается излишне большое количество задач. Операции с большим числом задач могут выполняться менее эффективно.
  • Счетчики CIM - эти счетчики используются для записи общего числа операций чтения и записи на CIM. Операции чтения и записи, связанные с рисованием, учитываются отдельно. Поскольку каждая операция связана с накладными расходами, меньшие переходы предпочтительнее больших в пределах определенного промежутка времени.
  • Счетчики IRequest - Эти счетчики зарезервированы для внутреннего использования.

Вкладка Задачи

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

Задачи в Диагностическом мониторе

Журнал UI последней задачи

Журнал UI последней задачи содержит записи о самых последних задачах, полученных в результате действий пользователя. Из-за расходов, связанных с определением функций задач, этот журнал недоступен, когда закрывается диалоговое окно Диагностический монитор. По умолчанию задачи отсортированы в хронологическом порядке, причем последняя выполненная задача идет в списке первой. Внутренние задачи (поставленные в очередь из выполняющейся внешней задачи) не отображаются в этом списке. Задачи, поставленные в очередь или выполняющиеся в настоящее время, показаны зеленым. У каждой задачи есть связанный с ней набор свойств:

  • Задача # - число, обозначающее порядок выполнения задачи. Например, Задача # 42 будет указывать на сорок вторую задачу, выполняемую в текущем процессе.
  • Время постановки в очередь - время начальной постановки задачи в очередь. Задачи, инициированные во время выполнения другой задачи, ставятся в очередь и не выполняются, пока не будет завершена текущая задача. Кнопки и элементы управления обычно отключены во время выполнения основной задачи, что позволяет предотвратить постановку других задач в очередь во время перехода состояния приложения.
  • Время задачи - время в миллисекундах, связанное с фактическим выполнением задачи.
  • Время возобновления - время ожидания завершения рисования в миллисекундах.
  • Время ожидания - время ожидания завершения операций, связанных с рисованием, в миллисекундах.
  • Общее время - общее время в миллисекундах, необходимое для выполнения задачи, которое отсчитывается с момента постановки задачи в очередь до момента ее завершения (включая временные промежутки, необходимые для возобновления рисования).
  • Функция - название самой внешней функции, лучше всего связанной с задачей.

Задачи, которые поставлены в очередь или все еще выполняются, отображают -1 в качестве значения времени. Будет отображаться фактическое время в миллисекундах после завершения или отмены задачи.

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

Журнал UI последней задачи можно отсортировать по любому столбцу по возрастанию или по убыванию. Эту возможность можно использовать, например, для быстрого нахождения задачи с наибольшим временем выполнения. Содержимое журнала можно скопировать в буфер обмена или очистить, щелкнув правой кнопкой в любом месте списка и выбрав Копировать или Очистить, соответственно.

Журнал остановки функциональности

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

Вкладка Журнал

Вкладка Журнал - это средство просмотра журнала событий в реальном времени с возможностями его сортировки и фильтрации. При работе в режиме диагностики многочисленные подсистемы ArcGIS Pro будут записывать диагностическую информацию в журнал событий. Режим диагностики можно включить с помощью аргумента командной строки, однако он также автоматически включается при отображении Диагностического монитора.

Вкладка Журнал Диагностического монитора.

Есть четыре типа событий:

  • Ошибка - используется для обозначения серьезных сбоев при выполнении операции
  • Предупреждение - менее критично, и иногда может быть проигнорировано
  • Информация - предназначено для предоставления дополнительной контекстной информации о выполняемой операции
  • Отладка - подробная информация, в первую очередь предназначенная для сотрудников Esri

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

Общее количество совпадающих событий отображается в правом верхнем углу вкладки Журнал.

Файлы журнала

Файлы журнала создаются в подпапке ArcGIS\Diagnostics папки Документы пользователя. В ArcGIS Pro файлы журналов выглядят так: ArcGISProLog-16360~89343E4F-74E8-4F26-A705-B805E8C92BB0 и имеют следующие свойства:

  • ArcGISProLog - имя исполняемого файла хоста.
  • 16360 - ID процесса.
  • 89343E4F-74E8-4F26-A705-B805E8C92BB0 - уникальный ID, созданный для этого экземпляра.