Використання виміру продуктивності для оптимізації клієнт-серверних додатків у 1С:Підприємстві 8

1С:Підприємство 8 дозволяє налагоджувати та вимірювати продуктивність для коду вбудованою мовою, що виконується як на клієнті, так і на сервері.

Об'єднання результатів виміру продуктивності для клієнта та сервера

Особливістю роботи виміру продуктивності для клієнт-серверної інформаційної бази в 1С:Підприємстві 8 є те, що результати виміру продуктивності об'єднуються в один файл. Вони включають дані про хід виконання коду вбудованою мовою як на клієнті, так і на сервері. Для отримання такого виміру достатньо запустити сервер 1С:Підприємства 8 у режимі налагодження (за допомогою ключа командного рядка /debug ) і в Конфігураторі в потрібний момент просто включити режим виміру продуктивності.

Відображення серверних дзвінків.

Режим виміру продуктивності 1С:Підприємства 8 показує серверні дзвінки:
1) виклики сервера методами об'єктів вбудованої мови, виклики процедур і функцій, виконання яких відбувається на сервері, відображаються у вимірі продуктивності в колонці "Обр. сервером" ("Обробка сервером") за допомогою значка ;
2) виклики клієнтських процедур та функцій, у яких тим чи іншим способом відбувався виклик сервера, відображаються у вимірі продуктивності в колонці "Обр. сервером" ("Обробка сервером") за допомогою значка .

На наведеному нижче малюнку можна бачити рядки коду, які призводили до серверних викликів: для цих рядків у колонці "Обр. сервером" ("Обробка сервером") вказано відповідний тип серверного виклику:

По колонці Обр.сервером" ("Обробка сервером") у вимірі продуктивності можливе сортування: для цього достатньо клацнути мишею по заголовку колонки. При цьому всі рядки коду, виконання яких призводило до серверних викликів, будуть згруповані:

Відображення місця виконання коду: на клієнті або сервері.

Режим виміру продуктивності 1С:Підприємства 8 відображає, де виконувався код вбудованою мовою в клієнт-серверній інформаційній базі: на клієнті або на сервері:
1) рядки коду вбудованою мовою, виконання яких відбувалося на клієнті, відображаються у вимірі продуктивності за допомогою значка в колонці "Клієнт";
2) рядки коду вбудованою мовою, виконання яких відбувалося на сервері, відображаються у вимірі продуктивності за допомогою значка в колонці "Сервер".

На наведеному нижче малюнку виділено колонки, у яких значками відображаються рядки, виконання яких відбувалося на клієнті та сервері:

По колонках "Клієнт" та "Сервер" у вимірі продуктивності також можливе сортування: для цього достатньо клацнути мишею у відповідній колонці. При цьому рядки коду, виконання яких відбувалося на клієнті або сервері, будуть згруповані.

Фільтрування результатів виміру

У результатах виміру продуктивності 1С:Підприємстві 8 існує можливість фільтрації інформації результатів виміру. Така фільтрація реалізована у вигляді двох прапорців "Клієнт" та "Сервер" у нижній правій частині вікна результатів виміру. За замовчуванням, включені обидва прапорці: це говорить про те, що в результатах виміру є інформація про хід виконання коду вбудованою мовою як на клієнті, так і на сервері.Якщо залишити увімкненим лише один прапорець, то в результатах виміру буде відображатися лише інформація про хід виконання програми лише на клієнті або сервері відповідно.

Оптимізація програми

Режим виміру продуктивності в 1С: Підприємстві 8 дозволяє успішно оптимізувати роботу клієнт-серверних додатків. Для виконання такої оптимізації достатньо виконати лише кілька дій, після чого проаналізувати результати виміру продуктивності та перейти до покращення коду вбудованою мовою.

Виконати замір продуктивності

Перший крок – виконати вимір продуктивності коду вбудованою мовою, що виконується на клієнті та на сервері. Отримавши результати виміру продуктивності, зберегти їх у файл.

Проаналізувати результати виміру продуктивності

Другий крок – проаналізувати результати виміру продуктивності.

Проаналізувати в результатах час виконання функцій на клієнта та сервері. Вибрати та проаналізувати функції, виконання яких на клієнті та на сервері зайняло максимальну кількість часу. Це зручно зробити, відображаючи за допомогою фільтра інформацію лише для клієнта або тільки для сервера та виконуючи сортування за колонками часу та відсотків.

Проаналізувати серверні виклики: виклики процедур та функцій загальних модулів на сервері, виклики сервера при зверненні до методів та властивостей об'єктів мови (звернення до бази даних, оперативна позначка часу тощо).

Проведений аналіз результатів виміру дозволить виявити вузькі місця у додатку навіть без наявності великої тестової бази та виконання навантажувального тестування:

  • звернення до сервера в циклі; запити в циклі;
  • звернення до властивостей об'єкта за посиланням;
  • та інші.

Оптимізувати прикладний код

Останній крок – оптимізація прикладного коду. На основі аналізу результатів виміру продуктивності та виявлених вузьких місць зробити оптимізацію прикладного коду.

Використання виміру продуктивності для оптимізації клієнт-серверних додатків у 1С:Підприємстві 8 - Priroda.v.ua

Для оптимізації роботи програмного коду потрібно знати час виконання до і після оптимізації. Час роботи програмного коду можна виміряти за допомогою вбудованої опції конфігуратора 1С, яка називається "Замір продуктивності". Ця опція дозволяє вимірювати час виконання рядків програмного коду. Для виміру часу виконання фрагментів коду, потрібно поставити дві точки зупинки, на початку та в кінці блоку, що замірюється. Спозиціонуватись на першу точку зупинки та включити замір продуктивності. Потім перейти до останньої точки зупинки і вимкнути замір продуктивності.

Вимірювання продуктивності включається в конфігураторі в головному меню: Налагодження->Замір продуктивності.

Вимір може бути вимкнений у будь-який момент: при переході по точках зупинки або після налагодження. Після вимкнення вимірювання продуктивності з'явиться звіт. У цьому звіті можна переглянути модуль, в якому виконувався код, номер рядка, програмний код, час виконання, кількість разів виконання фрагмента коду, відсоток витраченого часу від загального часу.

Про сайтЗворотній зв'язокПравилаНовини 1СCopyright © 2025
Цитування матеріалів (тексти, зображення, програмний код) допускається лише з розміщенням активного посилання на сайт 1CLenta.ru

Використання виміру продуктивності для оптимізації клієнт-серверних додатків у 1С:Підприємстві 8 - Priroda.v.ua

Вимірювання продуктивності дозволяє оцінити швидкість роботи всієї конфігурації або її частини, що працює в рамках будь-якого типу предмета налагодження.Вимірюється частота використання конкретних ділянок коду та швидкість їх виконання. Вказується, який код виконувався на сервері, а який на клієнті. Вказуються рядки коду, які призвели до виклику сервера.

Якщо є кілька способів програмування будь-якої задачі, можна реалізувати їх усі, після чого вибрати найшвидший.

У цьому необхідно пам'ятати, що порівняння способів необхідно проводити за однакових умов. Наприклад, якщо під час виконання завдання одним із порівнюваних способів процесор комп'ютера був завантажений ще будь-яким завданням, це може вплинути на достовірність порівняння. Можливі й інші, менш очевидні причини, через які умови виміру виявляться різними. Тому при порівнянні двох способів виконання завдання, що мають близьку продуктивність, бажано робити з кожним із них кілька вимірів? для оцінки та усереднення випадкового розкиду.

Докладніше про вимір продуктивності можна прочитати в документації «1С:Підприємства».

Виміряти продуктивність

Вимірювання продуктивності здійснюється лише в тому випадку, якщо програма запущена в режимі налагодження.

Щоб виконати замір, потрібно в певний момент його почати, і в деякий момент часу його закінчити. Обидві ці дії виконуються однією командою в командній панелі основного вікна — (Замір продуктивності) .

Після закінчення вимірювання 1C:EDT автоматично відкриє панель Вимір продуктивності , що містить результати вимірювання.

Вимірювання при старті програми

Щоб виміряти продуктивність, включаючи ділянку під час запуску програми, виконайте такі дії:

  1. Натисніть (Вимір продуктивності) в командній панелі основного вікна, щоб увімкнути вимірювання;
  2. Запустіть програму в режимі налагодження;
  3. Після того, як потрібні дії будуть виконані, натисніть (Вимір продуктивності) , щоб вимкнути вимірювання.

Час, що минув між стартом виміру та початком роботи програми, не враховуватиметься в результатах виміру.

Замір довільної ділянки інтерактивних дій

Щоб виміряти продуктивність однієї або кількох інтерактивних операцій, виконайте такі дії:

  1. Запустіть програму в режимі налагодження;
  2. Підготуйте додаток до виконання необхідної ділянки;
  3. Перейдіть до 1C:EDT і натисніть (Вимір продуктивності) в командній панелі основного вікна, щоб увімкнути вимірювання;
  4. Перейдіть до програми та виконайте необхідну послідовність дій;
  5. Перейдіть до 1C:EDT і натисніть (Вимір продуктивності) , щоб вимкнути вимірювання.

Щоб виміряти продуктивність довільної ділянки програмного коду, виконайте такі дії:

  1. Встановіть точки зупинки на початку та в кінці тієї ділянки, яку ви хочете заміряти;
  2. Запустіть програму в режимі налагодження;
  3. Виконайте послідовність дій, що призводить до зупинки на початку вашої ділянки;
  4. Після того, як виконання зупинено, натисніть (Вимір продуктивності) в командній панелі основного вікна, щоб увімкнути вимірювання;
  5. Продовжіть виконання програми;
  6. Після того, як виконання буде зупинено в кінці вашої ділянки, натисніть (Вимір продуктивності) , щоб вимкнути вимірювання.

Щоб виміряти продуктивність, включаючи ділянку, що виконується після завершення роботи програми, виконайте такі дії:

  1. Запустіть програму в режимі налагодження;
  2. Підготуйте додаток до виконання необхідної ділянки;
  3. Перейдіть до 1C:EDT і натисніть (Вимір продуктивності) в командній панелі основного вікна, щоб увімкнути вимірювання;
  4. Виконайте послідовність дій та завершіть роботу програми. Буде відкрито панель Замір продуктивності.

Переглянути результати вимірювання продуктивності

Результати вимірювання автоматично зберігаються в робочій області. Їх можна переглянути відразу після виміру або у будь-який зручний час.

На панелі «Вимір продуктивності»

Якщо у вас відкрита панель Вимірювання продуктивності, то зазвичай в ній відображається результат останнього вимірювання.

Двічі клацнувши на рядку виміру ви відкриєте модуль, який містить цей рядок. У редакторі вбудованої мови буде виділено інструкцію, що виконувалася.

Результати вимірювання можна побачити і в модулі. Для цього у вертикальній лінійці в контекстному меню встановіть прапорець Вимір продуктивності Показати результати вимірів.

Панель «Вимір продуктивності»

Панель Вимірювання продуктивності показує результати вимірювання, виконаного в процесі налагодження.

Ця панель відкривається автоматично після завершення виміру (коли віджата кнопка (Вимір продуктивності) у командній панелі основного вікна). При цьому результати вимірювання автоматично зберігаються в робочій області і можуть бути використані для перегляду в майбутньому, порівняння або експорту в інший проект. Кожен замір має стандартне ім'я, яке ви можете змінити.

Відкрити панель «Вимір продуктивності»

Натисніть Вікно > Показати панель > Інше… > 1С:Підприємство > Вимірювання продуктивності в головному меню основного вікна.

Стандартно результати виміру представлені у вигляді списку операторів, що виконували, в якому, крім оператора (колонка Рядок ), вказані модуль (колонка Модуль ) і номер рядка (колонка № рядка ), в якій розташований цей оператор.

Крім цього, можна відобразити результати виміру в більш загальному вигляді — у вигляді списку методів, які виконувались. Цей список можна додатково згрупувати за модулями.

  • – Код виконується на клієнті;
  • – у процесі виконання коду відбувається звернення до сервера;
  • – Код виконується на сервері;

У колонці Чистий час (з) кольором та шириною фону позначається частка (відсоток), яку займає виконання даного рядка у загальному часі виміру;

Стандартне ім'я поточного вимірювання. Складається з імені проекту (ДемоУП_14), дати виміру (15:44:11, Пт, 30 серп 2019) та предметів налагодження (Тонкий клієнт). До стандартного імені можна додати префікс. З випадаючого списку можна вибрати один із замірів, що є в робочій області, для того, щоб показати його результати в панелі.

  • Модуль – модуль, якому належить рядок коду. Ця колонка показується, якщо результати вимірювання представлені у вигляді таблиці операторів;
  • № рядка — номер рядка у модулі. Ця колонка показується, якщо результати вимірювання представлені у вигляді таблиці операторів;
  • Рядок — рядок коду, який виконувався. Ця колонка показується, якщо результати вимірювання представлені у вигляді таблиці операторів;
  • Метод – Метод, який виконувався. Ця колонка показується, якщо результати вимірювання представлені у вигляді списку методів.
  • Кількість викликів — скільки разів виконувався цей рядок коду за час виміру;
  • Повний час (с) – повний час виконання рядка коду.Воно складається з часу виклику методу (не відображається в таблиці) та чистого часу виконання оператора, що відображається в колонці Чистий час (с);
  • Чистий час (с) – чистий час виконання оператора (без урахування часу виклику процедури або функції). Також у цій колонці показується частка (у відсотках), яку зайняло виконання цього оператора загалом часу виміру;
  • Клієнт – у цій колонці піктограмою відзначаються рядки, що виконувались на клієнті;
  • Автономний сервер – у цій колонці відзначаються рядки, що виконувались на автономному сервері мобільного клієнта з автономним режимом;
  • Сервер – у цій колонці піктограмою відзначаються рядки, що виконувались на сервері;
  • обр. сервера – у цій колонці піктограмою відзначаються рядки, виконання яких призвело до виклику сервера;
  • Подвійний клік на рядку відкриває модуль у редакторі вбудованої мови і позиціонується на операторі, що виконувався, або на методі, що виконувався (якщо результати представлені у вигляді списку методів);
  • (Перейменувати результат) – дозволяє додати довільний рядок на початок стандартного імені виміру;
  • (порівняти с. ) — дозволяє порівняти поточний вимір з іншим виміром;
  • (Імпорт результатів вимірів) – імпортує результати вимірів у 1C:EDT;
  • (Експорт результатів вимірювання) — експортує результати вимірювання з 1C:EDT;
  • (Очистити результати) – очищає панель Вимір продуктивності та історію вимірів;
  • (Розгорнути все) – розкриває всі рівні ієрархії на панелі;
  • (Згорнути все) – згортає всі рівні ієрархії, що існують на панелі, до першого рівня;
  • (Групувати методи за модулями) – групує методи за модулями у тому випадку, якщо результати виміру представлені у вигляді списку методів;
  • (Результати клієнта) — якщо натиснуто, відображаються оператори, які виконуються на клієнті і, можливо, на сервері (якщо натиснуто (Результати сервера) ). Якщо віджата — відображаються лише оператори, які виконуються на сервері;
  • (Результати автономного сервера) — якщо натиснуто, відображаються оператори, які виконуються на автономному сервері і, можливо, на клієнті (якщо натиснуто (Результати клієнта) ). Якщо віджата — відображаються лише оператори, які виконуються на клієнті;
  • (Результати сервера) — якщо натиснуто, відображаються оператори, що виконуються на сервері і, можливо, на клієнті (якщо натиснуто (Результати клієнта) ). Якщо віджата — відображаються лише оператори, які виконуються на клієнті;
  • (Табличне подання) – результати виміру подаються у вигляді таблиці операторів, що виконувались з колонками Модуль , № рядка і Рядок ;
  • (Список методів) – результати виміру представлені у вигляді списку методів, що виконувались. Можна згрупувати цей список за модулями;

Порівняти результати двох вимірів продуктивності

Результати вимірювання автоматично зберігаються в робочій області. Ви можете порівняти поточний замір із будь-яким із вимірів, що проводилися раніше.

  1. Натисніть (Порівняти стор.) у командній панелі;
  2. Виберіть замір у верхній таблиці.

У нижній таблиці для інформації показаний склад того виміру, який обраний у верхній таблиці;

Структура інформації на панелі

Стандартно в таблиці показані оператори з порівнюваних вимірів, згруповані за методами та модулями. У колонках таблиці показано повний час виконання оператора в базовому та порівнюваному вимірах, а також чистий час виконання оператора в базовому та порівнюваному вимірах.

Крім цього, стандартно в панелі відображаються зміни цих значень, виражені як темп зростання. обчислюється за формулою: (порівнюване – базове) / базове; Можна увімкнути інше відображення – у вигляді різниці часток.

  • Повний час (базовий) – відноситься до базового виміру, повний час виконання рядка коду. Воно складається з часу виклику методу (не відображається в таблиці) та чистого часу виконання оператора, що відображається в колонці Чистий час (с);
  • Повний час (порівнюваний) – відноситься до порівняльного виміру, повний час виконання рядка коду. Воно складається з часу виклику методу (не відображається в таблиці) та чистого часу виконання оператора, що відображається в колонці Чистий час (с);
  • Чистий час (базовий) – відноситься до базового виміру, чистий час виконання оператора (без урахування часу виклику процедури або функції). Також у цій колонці показується частка (у відсотках), яку зайняло виконання цього оператора загалом часу виміру;
  • Чистий час (порівнюваний) — відноситься до порівняльного вимірювання, чистий час виконання оператора (без урахування часу виклику процедури або функції). Також у цій колонці показується частка (у відсотках), яку зайняло виконання цього оператора загалом часу виміру;
  • Темп зростання повного часу – зміна повного часу, виражене як темпи зростання. обчислюється за формулою: (порівнюване – базове) / базове; Відображається при натиснутій кнопці (Показати темп зростання);
  • Темп зростання чистого часу – зміна чистого часу, виражена як темп зростання. обчислюється за формулою: (порівнюване – базове) / базове; Відображається при натиснутій кнопці (Показати темп зростання);
  • Різниця часток повного часу — зміна повного часу, виражене як різниця часток. обчислюється за формулою: порівнюваний час рядка/час порівнюваного виміру – базовий час рядка/час базового виміру; Відображається при натиснутій кнопці (Показати різницю часток (відсотків) часу) ;
  • Різниця часток чистого часу — зміна чистого часу, виражена як різниця часток. обчислюється за формулою: порівнюваний час рядка/час порівнюваного виміру – базовий час рядка/час базового виміру; Відображається при натиснутій кнопці (Показати різницю часток (відсотків) часу) .
  • Одиночний клік на заголовку колонки сортує рядки таблиці цієї колонки. Якщо вони вже відсортовані за цією колонкою – змінює напрямок сортування;
  • Подвійний клік на рядку з оператором відкриває модуль у редакторі вбудованої мови та позиціонується на цьому операторі.
  • (Встановити поріг різниці) – встановлює поріг різниці в секундах. — це значення дельти (різниці між двома вимірюваними значеннями), починаючи з якого механізм порівняння відображатиме зміну значення. Встановлення порога різниці дозволяє звільнити результати порівняння двох вимірів від маленьких і незначних, на ваш погляд, змін;
  • (Обнулити поріг різниці) – обнулює поріг різниці та показує всі результати порівняння;
  • (Точні значення) — якщо натиснуто, у панелі відображаються колонки Повний час (с) та Чистий час (с) для базового та порівнюваного вимірів;
  • (Зміна) — якщо натиснуто, на панелі відображаються колонки Темп зростання повного часу та Темп зростання чистого часу або колонки Різниця часток повного часу та Різниця часток чистого часу ;
  • (Розгорнути все) – розкриває всі рівні ієрархії на панелі;
  • (Згорнути все) – згортає всі рівні ієрархії, що існують на панелі, до першого рівня;
  • (Групувати методи/рядки за модулями) — якщо натиснуто, рядки панелі групуються за модулями;
  • (Групувати рядки методами) — якщо натиснуто, рядки панелі групуються методами;
  • (Результати клієнта) — якщо натиснуто, відображаються оператори, які виконуються на клієнті і, можливо, на сервері (якщо натиснуто (Результати сервера) ). Якщо віджата — відображаються лише оператори, які виконуються на сервері;
  • (Результати сервера) — якщо натиснуто, відображаються оператори, що виконуються на сервері і, можливо, на клієнті (якщо натиснуто (Результати клієнта) ). Якщо віджата — відображаються лише оператори, які виконуються на клієнті;
  • (Показати темпи зростання) — зміни відображаються як темпи зростання в колонках Темп зростання повного часу і Темп зростання чистого часу . обчислюється за формулою: (порівнюване – базове) / базове;
  • (Показати різницю часток (відсотків) часу) — зміни відображаються як різниця часток у колонках Різниця часток повного часу та Різниця часток чистого часу . обчислюється за формулою: порівнюваний час рядка/час порівнюваного виміру – базовий час рядка/час базового виміру;

Експорт та імпорт результатів виміру продуктивності

Результати вимірювання можна зберегти у файли або завантажити з файлів.

  1. На панелі Вимір продуктивності натисніть (Експорт результатів вимірювання) у командній панелі;
  2. У полі Повний шлях виберіть каталог, до якого будуть вивантажені результати вимірювання;
  3. Зніміть прапорці з тих вимірів, які не потрібно експортувати;
  4. Натисніть Готово.

Ті самі дії можна виконати на панелі Навігатор . Для цього натисніть Експорт. > 1C:Enterprise > Вимірювання продуктивності .

  1. На панелі Вимір продуктивності натисніть (Імпорт результатів вимірювання) у командній панелі;
  2. У полі Повний шлях виберіть каталог, що містить результати вимірювання;
  3. Зніміть прапорці із тих вимірів, які імпортувати не потрібно;

Якщо у вибраному каталозі містяться вже імпортовані виміри, вони будуть відзначені третім станом прапорця. Імпортувати їх не можна, у них прапорець можна лише скинути;

Ті самі дії можна виконати на панелі Навігатор . Для цього клацніть Імпорт. > 1C:Enterprise > Вимірювання продуктивності .