суббота, 7 ноября 2015 г.

Конкатенация строк и производительность склеивания

Работая над одним проэктом заметил интересную вещь. Точнее сказать здесь ничего такого нет и понятно, что для склеивания одной строки с другой нужно время, чтобы выделить участок памяти. Вопрос, а если времени нет и это влияет на производительность, что тогда? Благо разработчики 1С дали такой выход и эта возможность появилась с релиза 8.3.6.1977. Сразу хочу подчеркнуть, что эти функции не будут работать если конфигурация работает в режиме совместимости. Так вот, выкладываю замеры производительности при обычном склеивании строк и при использовании новой возможности СтрСоединить()



Приведу выдержку из синтаксис помощника:

Глобальный контекст (Global context)
СтрСоединить (StrConcat)
Синтаксис:
СтрСоединить(<Строки>, <Разделитель>)
Параметры:
<Строки> (обязательный)
Тип: ФиксированныйМассив; Массив.
Массив, содержащий объединяемые строки.
<Разделитель> (необязательный)
Тип: Строка.
Строка, которая будет вставлена между объединяемыми строками.
Если параметр не задан, строки будут объединены слитно друг с другом.
Значение по умолчанию: Неопределено.
Возвращаемое значение:
Тип: Строка.
Строка, содержащая соединенные исходные строки с разделителем между ними.
Описание:
Соединяет массив переданных строк в одну строку с указанным разделителем.

Доступность:
Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение.

А вот отработка кода и его замеры закоментирована часть кода показывает поражающее ускорение. И в общем мне удалось сэкономить не одну минуту работы. Поскольку файл -анализа более 6 млн. строк. Анализировал технологический журнал платформы.


Комментариев нет:

Отправить комментарий