Понимание аналитики (предварительная версия)
[Данный раздел посвящен предварительному выпуску и может быть изменен.]
Аналитика производительности делится на следующие категории:
- Общая производительность
- Среда клиента
- Шаблон использования
- Производительность страницы
- Пользовательская настройка
- Настройка
- Сеть Поскольку на производительность приложения могут влиять различные факторы, аналитика производительности классифицирует области, чтобы проверить масштабы накладных расходов из-за производительности.
Общая производительность
Эта информация суммирует общую производительность вашего приложения в виде краткого обзора в ИД аналитики Perf.Summary.Overview.
В этой аналитике вы можете увидеть общую производительность вашего приложения в зависимости от серьезности.
- Критическая: указывает на низкую производительность.
- Предупреждение: указывает, что производительность может быть улучшена.
- Информационный: указывает на хорошую производительность.
Как улучшить
Когда придет время оптимизировать приложение, вы можете просмотреть подробную информацию о клиенте, сети, категориях настройки, а также надстройках, сохраненном savedQeury и параметрах. Некоторые элементы, требующие действий, можно получить, изучив эту аналитику.
Среда клиента
Когда пользователи проверяют приложение Power Apps на своих устройствах, на производительность могут влиять несколько факторов, например тип браузера, версия браузера и технические характеристики оборудования. В этом разделе вы можете увидеть, какие аналитические данные проверяют клиентские среды.
Тип браузера
ИД аналитики: Perf.Environment.Client.Browser.Type
Мотивация
Некоторые типы веб-браузеров могут повлиять на производительность вашего приложения. Использование неподдерживаемых или несовременных браузеров может привести к снижению производительности. Эта аналитика показывает влияние на производительность различных браузеров, особенно нерекомендуемых браузеров. Например, Power Apps больше не поддерживает Internet Explorer.
Как улучшить
Если у вас есть пользователи старых браузеров, например Internet Explorer, перейдите на современный браузер на основе Chromium. Мы рекомендуем пользователям использовать современный браузер, например Microsoft Edge или Google Chrome.
Примечание
Некоторые устаревшие приложения, использующие NPAPI, будут работать только на Internet Explorer.
Версия браузера
ИД аналитики: Perf.Environment.Client.Browser.Version
Мотивация
Эта аналитика проверяет, сколько пользователей используют ваше приложение в старой версии браузера. Даже когда пользователи используют современные браузеры, а не нерекомендуемые типы браузеров, такие как Internet Explorer, старые версии браузеров работают медленнее.
Как улучшить
Пользователям следует регулярно обновлять браузер до новейшей версии. Корпоративные клиенты могут применять групповую политику для конкретной версии. Поскольку Unified Service Desk (USD) также использует настройку браузера по умолчанию на компьютере, также требуется проверка типа и версии браузера по умолчанию.
Минимальные требования к системе
ИД аналитики: Perf.Environment.Device.MimimumRequirements
Мотивация
Эта аналитика проверяет, соответствует ли среда пользователя минимальным системным требованиям. Вы можете проверить требования к веб-приложению, чтобы узнать минимальные системные требования в зависимости от типа приложения.
Как правило, некоторые действия, такие как отрисовка, создание сценариев и загрузка содержимого, происходят на стороне клиента. Для такой деятельности необходимо соответствие минимальным системным требованиям.
Как улучшить
Пользователи должны использовать оборудование, которое соответствует минимальным системным требованиям для Power Apps.
Протокол HTTP
ИД аналитики: Perf.Environment.Client.Browser.HttpProtocol
Мотивация
Платформа Power Apps поддерживает HTTP/2. Однако, если ваше приложение использует протокол HTTP/1.1 для запросов XMLHttpRequest (XHR) в Power Apps, это может привести к снижению производительности из-за одновременного ограничения запросов с протоколом HTTP/1.1.
Как улучшить
Если эта аналитика выявила некоторых пользователей, использующих протокол HTTP/1.1, мы настоятельно рекомендуем, чтобы клиент этих пользователей поддерживал протокол HTTP/2.
Некоторые конфигурации и сетевая инфраструктура могут блокировать протокол HTTP/2, например сеть VPN, прокси-сервер или настройки параметров Интернета устройства.
Пользователи могут проверить, какой протокол использовался, с помощью инструмента разработки, включенного в браузер. На рисунке ниже сетевые вызовы происходили через HTTP/2.
Если трассировка сетевого протокола обнаруживает HTTP/1.1, это может быть связано со следующим:
- Интернет-настройки: интернет-параметр Windows, вкладка Дополнительно на панели управления, параметры Использовать HTTP2 и Использовать TLS 1.2 не включены.
- VPN и прокси: хотя в параметрах Интернета Windows установлено использование HTTP2 и TLS 1.2, браузер может откатиться назад, если VPN или прокси не поддерживают более новые протоколы.
Шаблон использования
Эта категория анализирует тип загрузок страницы. Горячая загрузка страницы отображает страницу с использованием кэшей и существующих объектов DOM, в то время как холодная загрузка страницы отображает страницу заново путем загрузки ресурсов, когда это необходимо. Хотя пользователи не различают тип загрузки страницы, эта аналитика анализирует и дает рекомендации в зависимости от того, какой тип загрузки страницы происходит в клиенте.
Тип загрузки страницы
ИД аналитики: Perf.Performance.PageLoadType
Мотивация
Горячая загрузка страниц происходит быстрее, чем холодных, так как необходимые ресурсы загружаются из локальных кэшей.
Примечание
Когда пользователь открывает форму из новой вкладки или новой вкладки в браузере, это считается холодной загрузкой страницы. Когда пользователь открывает другие формы в приложении на активной вкладке браузера, это считается горячей загрузкой страницы.
Как улучшить
Чтобы страницы загружались в горячем режиме для повышения производительности, минимизируйте открытие новых вкладок или окон браузера. Старайтесь держать действия в пределах одной вкладки, а не открывать новые вкладки или окна браузера. Мы также рекомендуем не запускать браузер в режиме InPrivate или инкогнито.
Производительность страницы
Многие сторонние приложения на основе моделей состоят из панели мониторинга, представлений (EntityList) и формы, когда дело касается типа страницы. По умолчанию пользователи загружают панель мониторинга, хотя разработчики приложений и администраторы могут это изменить. Если панель мониторинга содержит много диаграмм и плиток, это может привести к медленной загрузке панели мониторинга. Точно так же, если EntityList и формы настроены для добавления множества столбцов и отображения большого количества записей, это также может привести к медленной загрузке страницы. Следовательно, проверка производительности на странице и в таблице может быть полезной, потому что производительность загрузки страницы может иметь разные основные причины.
В этом разделе вы можете узнать несколько идей, связанных с производительностью страницы.
Медленные панели мониторинга
ИД аналитики: Perf.ModelDriven.Page.Dashboard.SlowSQLQuery
Мотивация
Медленные запросы SQL или использование слишком большого количества диаграмм и плиток на панели мониторинга могут привести к снижению производительности панели мониторинга. Эта аналитика указывает панели мониторинга, на которые влияют медленные запросы SQL. Когда аналитика записывается, в области Подробности указывается идентификатор панели мониторинга для каждой панели мониторинга в аналитике.
Как улучшить
Вот как найти имя панели мониторинга по идентификатору панели управления. Затем вы можете определить, какие панели мониторинга следует рассмотреть для переработки.
Перейдите в приложение на основе модели, например https://contoso.crm.dynamics.com.
Измените URL-адрес, как показано в этом примере (https://contoso.dynamics.com/api/data/v9.1/systemforms[DashboardId]/name), добавив api/data/v9.1/systemforms[DashboardId]/name в URL-адрес приложения.
Вы получите запрос OData, аналогичный приведенному ниже. Панель мониторинга агента, показанная ниже, представляет собой понятное имя данного идентификатора панели мониторинга.
{"@odata.context":https://contoso.crm.dynamics.com/api/data/v9.1/$metadata#systemforms(2ff4a8cf-378b-e811-a964-000d3a30dc0a)/name,"value":"Contoso - Agent Dashboard"}
Синхронные подключаемые модули с медленными внешними вызовами
ИД аналитики: Perf.Sandbox.Performance.Plug-ins.ExternalCall
Подключаемые модули и настраиваемые действия рабочего процесса могут получать доступ к веб-службам (внешним конечным точкам) через протоколы HTTP и HTTPS. Если эти внешние службы работают медленно, сам подключаемый модуль будет работать медленно или с истечением времени ожидания.
Мотивация
Эта аналитика проверяет производительность внешних конечных точек и обнаруживает подключаемые модули в вашем приложении, на которые влияют медленные внешние вызовы.
Как улучшить
- Задайте для KeepAlive значение false при взаимодействии с внешними узлами в подключаемом модуле.
- Явно задайте истечение времени ожидания при выполнении внешних вызовов в подключаемом модуле.
Больше информации: Доступ к внешним веб-службам (Microsoft Dataverse) — Power Apps | Документация Майкрософт.
Пользовательская настройка
Создатели могут выполнять множество различных настроек с помощью приложений на основе моделей, таких как:
- Получить пользовательские функции JavaScript, чтобы активировать события в клиенте.
- Создавайте и развертывайте подключаемые модули, используемые для выполнения пользовательской логики.
- Определите и сохраните настраиваемые таблицы и данные.
- Определите зависимые компоненты как для настраиваемых, так и для стандартных таблиц, например форм и представлений.
С точки зрения производительности все эти настройки могут вызвать плохой отклик приложения в ситуациях, когда настройка не соответствует лучшим практикам и рекомендациям. Создатели могут запустить Solution Checker для проверки своих настроек на этапе разработки.
Следующие идеи также дают аналитические результаты на основе пользовательских данных во время выполнения вашей настройки.
Тип вызова XML HTTP-запрос (XHR)
ИД аналитики: Perf.ModelDriven.Customization.Client.Script.XMLHttpRequestType
Синхронные вызовы XMLHttpRequest могут вызвать серьезные проблемы с производительностью для конечных пользователей, особенно когда сеть работает медленно или необходимо выполнить несколько вызовов. Браузер зависает, и конечный пользователь разочаровывается, когда не может щелкнуть, прокрутить страницу или взаимодействовать со страницей.
Эта аналитика показывает, существуют ли синхронные методы, и указывает на соответствующую производительность.
Мотивация
Синхронные вызовы XHR будут блокировать выполнение браузером дополнительной работы, поскольку браузер должен дождаться завершения синхронного вызова, что приведет к замедлению или полному зависанию страницы.
Как улучшить
Мы рекомендуем вам изменить основные методы, упомянутые в Раздел данных аналитики с синхронных на асинхронные. Больше информации: Ускорьте работу ваших приложений на основе моделей, отказавшись от синхронных запросов
Устаревшие элементы управления
ИД аналитики: Perf.Customization.Controls.Deprecated
Некоторые старые элементы управления для приложений на основе модели, такие как двухпозиционный переключатель, элемент управления календарем (V1), линейный ползунок, радиальная ручка, дуговая ручка, линейный индикатор; вместе с элементом управления предварительного просмотра веб-сайта, MultiSelectPicklistControl (V1) и метка с пролистыванием устарели. Некоторые из этих элементов управления могут быть заменены новыми элементами управления, которые больше подходят для современного Интернета и мобильных устройств. Больше информации: Новые элементы управления приложений на основе модели, отказ от старых элементов управления
Мотивация
Использование устаревших элементов управления может вызвать проблемы с производительностью, надежностью и доступностью. Более того, некоторые ограничения этих устаревших элементов управления были устранены с помощью новых элементов управления. Например, элементы управления "переключатель" и "календарь" (V2) используют пользовательский интерфейс Microsoft Fluent.
Как улучшить
- Используйте элемент управления переключатель как замену метки с пролистыванием и двухпозиционного переключателя.
- Используйте элемент управления календарем (V2) вместо элемента управления календарем (V1).
- Изучите другие устаревшие элементы управления, чтобы определить, полезны ли они по-прежнему в существующих формах.
Обратите внимание, что между устаревшей версией и новыми элементами управления есть несколько существенных изменений дизайна.
Дополнительные сведения об устаревших элементах управления см. в Прекращение поддержки элементов управления приложений на основе модели.
Производительность песочницы — доминирующие подключаемые модули
ИД аналитики: Perf.Sandbox.Performance.Plug-ins.Dominant
Эта аналитика поможет определить доминирующий подключаемый модуль или, другими словами, тот, который используется чаще всего. Она также будет указывать, работал ли какой-либо из наиболее часто используемых подключаемых модулей медленно со временем выполнения подключаемого модуля более 100 миллисекунд в 95 процентиле. В этой аналитике будет перечислено до трех доминирующих подключаемых модулей.
Мотивация
Медленный доминирующий подключаемый модуль влияет на производительность. Эти подключаемые модули следует изучить.
Как улучшить
Изучите медленно работающие подключаемые модули. Проверьте рекомендации в отношении разработки подключаемых модулей и рабочих процессов.
Для дальнейшего изучения медленного подключаемого модуля вы можете установить параметры Журнал трассировки подключаемого модуля как Все в вашей среде разработки или тестирования и определить место задержки. Однако не забудьте отключить эту настройку перед запуском в производство. Больше информации: Отслеживание и ведение журнала
Изучите медленно работающие подключаемые модули. Некоторые из причин медленных подключаемых модулей описаны здесь:
- Связанные запросы SQL выполнялись медленно, поэтому время выполнения подключаемого модуля увеличивалось.
- Следуйте принципу единой ответственности для своего подключаемого модуля и не совершайте транзакции со значительными границами транзакций.
- Подключаемый модуль может выполнять некоторые внешние вызовы, которые выполняются медленно.
- Логика подключаемого модуля не оптимизирована для многопоточных сред. Проверьте свой код.
Для дальнейшего изучения медленного подключаемого модуля вы можете установить параметры Журнал трассировки подключаемого модуля как Все в вашей среде разработки или тестирования и определить место задержки. Не забудьте отключить эту настройку перед запуском в производство. Больше информации: Отслеживание и ведение журнала
Сохраненный запрос с начальным подстановочным знаком
ИД аналитики: Perf.ModelDriven.Customization.SavedQuery.LeadingWildCard
Начальные подстановочные знаки: условия like или not like, использующие подстановочный знак (%) в начале строки поиска. Пример плохо написанного запроса:
<fetch version="1.0" output-format="xml-platform" mapping="logical">
<entity name="account">
<attribute name="accountid" />
<attribute name="accountnumber" />
<filter type="and">
<condition attribute="accountnumber" operator="like" value="%124" />
</filter>
</entity>
</fetch>
Мотивация
Начальный символ подстановки (%) в сохраненном запросе может привести к истечении времени ожидания запроса или медленному выполнению. Эта аналитика указывает на такие медленные сохраняемые запросы с начальными подстановочными знаками.
Как улучшить
Избегайте использования начальных подстановочных знаков. В поисковом запросе они преобразуются в «содержит» в SQL Server, который не использует преимущества поиска по индексу, но выполняет сканирование. Если необходимо использовать начальный подстановочный знак, ограничьте область поиска, включив другие условия. Обратите внимание, что в конце строки поиска можно использовать конечные символы подстановки (%).
Настройка
Настройка журнала трассировки подключаемого модуля
ИД аналитики: Perf.Sandbox.Configuration.PluginTraceSettings
Создатели могут отлаживать свои подключаемые модули через журналы трассировки подключаемых модулей. В Dataverse администраторы могут установить для подключаемых модулей и настраиваемой трассировки действий бизнес-процесса значение Выкл, Исключение или Все.
Мотивация
Журнал трассировки подключаемого модуля должен быть установлен как Все, только когда вы отлаживаете или настраиваете подключаемый модуль. Большой объем журнала трассировки может вызвать чрезмерную нагрузку на ввода-вывод с SQL Server. Более того, удаление журнала трассировки подключаемого модуля может вызвать блокировки или ожидания с SQL Server.
Как улучшить
Если в вашем производственном экземпляре этот параметр установлен как Все и объем журналов, создаваемых вашим подключаемым модулем, велик, подумайте о том, чтобы изменить его на "Исключение".
Чтобы изменить настройку, перейдите на вкладку Настройки > Администрирование > Системные параметры > Настройка. Больше информации: Ведение журнала и трассировка
Сеть
Производительность сети
Задержка и пропускная способность сети являются важными факторами, влияющими на работу конечного пользователя. Пользователи с высокой задержкой и низкой пропускной способностью, скорее всего, столкнутся с низкой производительностью при доступе к единому интерфейсу. Эта аналитика говорит нам, сколько пользователей находится в сети с плохими характеристиками и какова была их производительность.
Мотивация
Плохая конфигурация сети повлияет на производительность приложения.
Как улучшить
Если в сети много пользователей и производительность низкая, мы рекомендуем пользователям переключиться на более производительную сеть.