Project

Profile

Help

HostedRedmine.com has moved to the Planio platform. All logins and passwords remained the same. All users will be able to login and use Redmine just as before. *Read more...*

Bug #950717

open

8.3.18-22+ Аномально долгое выполнение метода ПроверитьЦиклическиеСсылкиВстроенногоЯзыка() для коллекций

Added by Сергей Старых 4 months ago. Updated 4 months ago.

Status:
New
Priority:
Normal
Assignee:
-
Category:
-
Sprint/Milestone:
-
Start date:
Due date:
% Done:

0%

Estimated time:

Description

https://partners.v8.1c.ru/forum/t/2083393/m/2083393
Конфигурация ПО

8.3.18-22

Проблема

Аномально долгое выполнение метода ПроверитьЦиклическиеСсылкиВстроенногоЯзыка() для коллекций

Воспроизведение

Открыть приложенную внешнюю обработку в управляемом клиентском приложении любой базы. Нажать "Команда1". При этом выполнится код
ТаблицаДанных = Новый ТаблицаЗначений;
Для Счетчик = 1 по 100000 Цикл
НоваяСтрока = ТаблицаДанных.Добавить();
КонецЦикла;
ВремяНачала = ТекущаяУниверсальнаяДатаВМиллисекундах();
ПроверитьЦиклическиеСсылкиВстроенногоЯзыка(ТаблицаДанных);
ВремяОкончания = ТекущаяУниверсальнаяДатаВМиллисекундах();
Сообщить(СтрШаблон("Время проверки циклических ссылок %1 мсек.", Строка(ВремяОкончания-ВремяНачала)));

И будет выведено очень большое время (около 8 секунд).

Время проверки циклических ссылок 8 000 мсек.

А ожидалось очень малое время (около 0 секунд), т.к. внутри коллекции нет ссылок на объекты, поэтому ее элементы не могут участвовать в циклах ссылок.

Аналогичная проблема для списка значений (33 секунд!), структуры, соответствия, дерева значений (33 секунд!).

Я так понимаю дело в том, что на элементы этих коллекций можно ссылаться. Поэтому сначала запускается поиск ссылок НА все элементы коллекции. Но ведь их содержимое - (пустые) значения примитивных типов. Поэтому нет уже смысла искать ссылки на них для поиска циклов ссылок. Надо начинать поиск внутри ее элементов. Тогда скорость выполнения в данном сценарии вырастет на порядки, а в других сценариях кажется не пострадает.

У массива ожидаемо 0 секунд, т.к. на его элементы нельзя ссылаться и видимо поэтому поиск входящих ссылок не выполняется.


Files

ВнешняяОбработка1.epf (9.15 KB) ВнешняяОбработка1.epf Сергей Старых, 2022-09-24 03:26 PM

Related issues

Related to Инструменты разработчика Tormozit для 1С - Bug #950718: Ускорено сохранение файла при наличии в параметрах больших коллекцийClosed

Actions
Actions #1

Updated by Сергей Старых 4 months ago

  • Subject changed from 8.3.18-22+ Аномально долгое выполнение метода ПроверитьЦиклическиеСсылкиВстроенногоЯзыка() для таблицы значений to 8.3.18-22+ Аномально долгое выполнение метода ПроверитьЦиклическиеСсылкиВстроенногоЯзыка() для коллекций
  • Description updated (diff)
Actions #2

Updated by Сергей Старых 4 months ago

  • Description updated (diff)
Actions #3

Updated by Сергей Старых 4 months ago

  • Related to Bug #950718: Ускорено сохранение файла при наличии в параметрах больших коллекций added

Also available in: Atom PDF