Найти в Дзене

Как замерить скорость работы 1с

Измерение скорости работы 1С – важная задача для поддержания производительности системы и выявления узких мест. В 1С есть несколько инструментов и методов, позволяющих оценить скорость работы различных операций и процедур. I. Встроенные инструменты 1С: § <?xml version="1.0" encoding="UTF-8"?> § <config xmlns="http://v8.1c.ru/v8/tech-log"> § <log location="C:\1CLogs" history="72" size="1024" /> <!-- Папка для логов, глубина хранения (часы), макс размер файла (МБ) --> § <event> § <eq property="name" value="CALL"/> <!-- Вызовы процедур и функций --> § <eq property="name" value="DBMSSQL"/> <!-- SQL запросы --> § <eq property="name" value="DBPROC"/> <!-- Хранимые процедуры SQL --> § <eq property="name" value="TLOCK"/> <!-- Блокировки --> § </event> § <property name="all"/> <!-- Записывать все свойства событий --> § </config> o Начало = ТекущаяДата(); o // ... код, который нужно измерить ... o Конец = ТекущаяДата(); o ВремяВыполнения = Конец - Начало; o Сообщить("Время выполнения: "

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

I. Встроенные инструменты 1С:

  1. Технологический журнал (ТЖ):
  • Описание: Самый мощный и гибкий инструмент для анализа производительности. ТЖ регистрирует информацию о различных событиях, происходящих в системе, включая время выполнения запросов, блокировки, вызовы процедур и функций, и т.д.
  • Настройка:
  • Включите ТЖ: В файле 1CV8.lgf (расположен в каталоге установки сервера 1С) необходимо настроить параметры записи технологического журнала. Минимально необходимые параметры:

§ <?xml version="1.0" encoding="UTF-8"?>

§ <config xmlns="http://v8.1c.ru/v8/tech-log">

§ <log location="C:\1CLogs" history="72" size="1024" /> <!-- Папка для логов, глубина хранения (часы), макс размер файла (МБ) -->

§ <event>

§ <eq property="name" value="CALL"/> <!-- Вызовы процедур и функций -->

§ <eq property="name" value="DBMSSQL"/> <!-- SQL запросы -->

§ <eq property="name" value="DBPROC"/> <!-- Хранимые процедуры SQL -->

§ <eq property="name" value="TLOCK"/> <!-- Блокировки -->

§ </event>

§ <property name="all"/> <!-- Записывать все свойства событий -->

§ </config>

  • Перезапустите сервер 1С.
  • Анализ:
  • Для анализа ТЖ можно использовать:
  • Встроенный анализатор ТЖ в 1С:Предприятие (начиная с платформы 8.3.18): “Администрирование” -> “Обслуживание” -> “Анализ технологического журнала”.
  • Сторонние анализаторы ТЖ: Например, “LogExpert” (бесплатный), “SilverBullet” (платный).
  • Основные события для анализа:
  • CALL: Время выполнения вызовов процедур и функций.
  • DBMSSQL: Время выполнения SQL-запросов к базе данных. Обращайте внимание на длительные запросы.
  • DBPROC: Время выполнения хранимых процедур SQL.
  • TLOCK: Информация о блокировках базы данных. Блокировки могут замедлять работу системы.
  • Преимущества: Подробная информация о различных аспектах работы системы.
  • Недостатки: Требует настройки и навыков анализа, большой объем логов.
  1. Замер производительности (встроенный в конфигурацию):
  • Описание: В некоторые конфигурации 1С встроены инструменты для замера производительности. Например, в БСП (Библиотека стандартных подсистем) есть подсистема “Тестирование и исправление”.
  • Использование: Найдите в своей конфигурации встроенные инструменты для замера производительности и следуйте инструкциям.
  • Преимущества: Простой в использовании, не требует сложной настройки.
  • Недостатки: Ограниченная функциональность, доступен не во всех конфигурациях.
  1. Замер времени выполнения кода (с помощью встроенных функций):
  • Описание: Можно использовать встроенные функции 1С для замера времени выполнения отдельных участков кода.
  • Пример:

o Начало = ТекущаяДата();

o // ... код, который нужно измерить ...

o Конец = ТекущаяДата();

o ВремяВыполнения = Конец - Начало;

o Сообщить("Время выполнения: " + ВремяВыполнения);

  • Преимущества: Простой способ измерить время выполнения конкретного кода.
  • Недостатки: Требует внесения изменений в код, не подходит для анализа общей производительности системы.

II. Сторонние инструменты:

  1. APM-системы (Application Performance Monitoring):
  • Описание: Существуют сторонние APM-системы, предназначенные для мониторинга производительности приложений, в том числе 1С. Они предоставляют более продвинутые возможности анализа и визуализации данных, чем встроенные инструменты 1С.
  • Примеры: SmartMonitor, AppDynamics, Dynatrace.
  • Преимущества: Продвинутый анализ, визуализация данных, мониторинг в режиме реального времени.
  • Недостатки: Платные, требуют установки и настройки.
  1. Инструменты профилирования SQL-запросов:
  • Описание: Если вы подозреваете, что проблема в медленных SQL-запросах, можно использовать инструменты профилирования SQL-запросов для анализа времени выполнения запросов и выявления узких мест.
  • Примеры: SQL Profiler (для MS SQL Server).
  • Преимущества: Позволяют выявить и оптимизировать медленные SQL-запросы.
  • Недостатки: Требуют знания SQL и навыков работы с инструментами профилирования.

III. Общие рекомендации по измерению производительности:

  • Определите цель измерения: Что именно вы хотите измерить? Время выполнения конкретной операции, общую производительность системы, или выявить узкие места?
  • Выберите подходящий инструмент: Выберите инструмент, который соответствует вашей цели измерения.
  • Проводите измерения в одинаковых условиях: Чтобы получить достоверные результаты, проводите измерения в одинаковых условиях (например, в одно и то же время суток, с одинаковым количеством пользователей).
  • Повторите измерения несколько раз: Чтобы убедиться, что результаты измерений не случайны, повторите их несколько раз и усредните полученные значения.
  • Анализируйте результаты: Внимательно анализируйте результаты измерений, чтобы выявить причины низкой производительности.
  • Вносите изменения постепенно: Не вносите сразу много изменений в конфигурацию или настройки системы. Вносите изменения постепенно и проверяйте, как они влияют на производительность.

Пример анализа с помощью технологического журнала:

  1. Проблема: Медленное проведение документа “Реализация товаров и услуг”.
  2. Действия:
  • Включаем технологический журнал с событиями CALL и DBMSSQL.
  • Проводим документ “Реализация товаров и услуг”.
  • Открываем технологический журнал в анализаторе (например, встроенном в 1С).
  • Фильтруем события по пользователю и времени проведения документа.
  • Анализируем события CALL: Находим самые длительные вызовы процедур и функций.
  • Анализируем события DBMSSQL: Находим самые длительные SQL-запросы.
  • Вывод:
  • Если много времени уходит на выполнение какой-то конкретной процедуры, то нужно оптимизировать эту процедуру (например, переписать алгоритм, добавить индексы).
  • Если много времени уходит на выполнение SQL-запросов, то нужно оптимизировать запросы (например, добавить индексы, переписать запросы).

Ключевые факторы, влияющие на скорость работы 1С:

  • Производительность сервера: Процессор, оперативная память, дисковая подсистема.
  • Производительность базы данных: MS SQL Server, PostgreSQL. Настройки базы данных, оптимизация запросов.
  • Производительность сети: Пропускная способность сети, задержки.
  • Оптимизация кода 1С: Эффективность алгоритмов, использование индексов, оптимизация запросов.
  • Конфигурация 1С: Объем данных, количество пользователей, сложность бизнес-процессов.

Правильный анализ производительности и своевременная оптимизация помогут вам обеспечить быструю и стабильную работу вашей системы 1С.