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
open8.3.18-22+ Аномально долгое выполнение метода ПроверитьЦиклическиеСсылкиВстроенногоЯзыка() для коллекций
0%
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
Related issues
Updated by Сергей Старых 4 months ago
- Subject changed from 8.3.18-22+ Аномально долгое выполнение метода ПроверитьЦиклическиеСсылкиВстроенногоЯзыка() для таблицы значений to 8.3.18-22+ Аномально долгое выполнение метода ПроверитьЦиклическиеСсылкиВстроенногоЯзыка() для коллекций
- Description updated (diff)
Updated by Сергей Старых 4 months ago
- Related to Bug #950718: Ускорено сохранение файла при наличии в параметрах больших коллекций added