|
|
#1 |
|
Участник
|
Всем привет!
Разбираюсь с таблицей SysClientAccessLog и функционалом связанным с ней, создал форму для разбора контейнера EventContainer и отображения данных и путем экспериментов и сравнением с Sentry обозначил, что третий элемент контейнера является длительность события. Если ошибся, то расскажите что это за параметр и как его использовать. Как я понимаю до кода этого функционала не добраться (он в ядре) и документации по его работе изнутри нет, но если у вас есть что-либо, буду признателен. Основной вопрос в том, что за некоторыми формами, по типу PurchTableListPage и ProdTableListPage, во время изучения было обнаружено странное поведение. Если запускать форму несколько раз, то 2-3 первых запуска ее в сессии показывают нормальное значение длительности, а последующие показывают время от запуска формы до запуска следующего экземпляра этой формы. Например: 1 - ProdTableListPage - Открытие формы - 719 мс 2 - ProdTableListPage - Открытие формы - 468 мс 3 - ProdTableListPage - Открытие формы - 4609 мс 4 - ProdTableListPage - Открытие формы - 4359 мс 5 - ProdTableListPage - Открытие формы - 4297 мс 6 - ProdTableListPage - Открытие формы - 4125 мс 7 - ProdTableListPage - Открытие формы - 5656 мс 8 - ProdTableListPage - Открытие формы - 10204 мс P.S. Первые 7 раз я отсчитывал в голове 5 секунд нахождения на форме, в последний раз 10 и сразу закрыл клиент. AOS является чистым, специально для этой проверки Кто-то сталкивался с таким поведением? Единственная моя зацепка в том, что я смог воссоздать ситуацию на пустой форме, где разместил сначала 80 сеппараторов (кнопок/stringEdit и т.п.) и воссоздать это поведение. При удалении одного элемента (79 элементов формы) такого эффекта уже нет. Но не хочется верить, что это из-за количества элементов, потому что, согласно документациям, никаких ограничений нет, да и форм содержащих более 80 дизайн-элементов предостаточно Спасибо! |
|
|
|
|
#2 |
|
Участник
|
Нашел ответы на некоторые вопросы.
В этой статье (https://learn.microsoft.com/en-us/pr...rmance-options) есть часть посвященная предзагрузке сложных форм, где фигурирует кол-во элементов в форме (число 80, о котором я писал ранее). При отключении AllowPreLoading (значение: No) проблема, вроде бы, решается. Форма не предзагружается и правильно считает длительность открытия сложных форм. |
|
|
|
|
#3 |
|
Участник
|
Если форма тяжелая с большим числом датасорсов и по таблицам с большим числом полей и методов то все это люто тормозит в 12-ке при первом открытии.
У нас форма заказов на продажу и закупок в компании пустышке dat открывалась по 30-40 секунд и это время тратилось на начитку метаданных из аот. По возможности я просто переписываю такие формы выкидывая из них ненужный контролы и датасорсы. Это сильно облегчает и ускоряет работу. |
|
|
|
| За это сообщение автора поблагодарили: Zavaryka_kofeiky (1). | |
|
|
#4 |
|
Участник
|
Спасибо за ответ! Но, думаю, мы говорим о немного разных вещах.
Меня интересует не производительность самой формы как таковой, а корректность данных в SysClientAccessLog — конкретно третий элемент EventContainer, являющийся длительностью открытия. Проблема в том, что начиная примерно с 2–3 открытия одной и той же формы в сессии, это значение перестаёт отражать реальное время открытия и начинает показывать время от момента открытия формы до момента открытия следующего её экземпляра. То есть если я подождал 5 секунд и открыл форму снова — предыдущая запись показывает ~5000 мс вместо реального времени рендера. Это, как я понял, связано с механизмом предзагрузки (AllowPreLoading): при отключении этой опции аномалия исчезает. Судя по всему, предзагруженный экземпляр формы не закрывается, и ядро продолжает отсчитывать время до следующего открытия. |
|
|
|
|
| Опции темы | Поиск в этой теме |
| Опции просмотра | |
|