Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Что быстрее работает: ТаблицаЗначений или Массив Массивов?

Что быстрее работает: ТаблицаЗначений или Массив Массивов?
Я
   Oblako486
 
08.01.21 - 15:38
Кто-нибудь проверял?
Считаем что ТаблицаЗначений уже сформирована, созданы колонки, заполнены значения.
Массив Массивов тоже заполнен.
Дальше делаем вывод каждого значения через Сообщить()
Что будет быстрее?
   H A D G E H O G s
 
1 - 08.01.21 - 15:40
Тормозить в данном случае будет
Сообщить()
поэтому пофиг
   RomanYS
 
2 - 08.01.21 - 15:41
>> Дальше делаем вывод
Тупой обход двойным циклом? Ну сделай замер - посмотри.
А когда тебе поиск по колонке понадобится что будешь с массивом делать?
   RomanYS
 
3 - 08.01.21 - 15:42
+(2) исходи из конкретных потребностей, а не из тупого вывода через сообщить
   Oblako486
 
4 - 08.01.21 - 15:43
(2) Да. Тупой обход двойным циклом. Либо один цикл и доступ через "точку". Собственно вопрос в том, механизм работы через точку это тоже скрытый цикл?
(3) Согласен сообщить неподходящий пример
   Oblako486
 
5 - 16.01.21 - 13:13
(4) [1С] Для каждого массив из ДвумерныйМассив Цикл
        Значение0 = массив[0];
        Значение1 = массив[1];
        Значение2 = массив[2];
        Значение3 = массив[3];
        Значение4 = массив[4];
        Значение5 = массив[5];
        Значение6 = массив[6];
        Значение7 = массив[7];
        Значение8 = массив[8];
        Значение9 = массив[9];
    КонецЦИкла;
    
    Для каждого строка из ТаблицаЗначений Цикл
        ячейка1 = строка.Колонка1;
        ячейка2 = строка.Колонка2;
        ячейка3 = строка.Колонка3;
        ячейка4 = строка.Колонка4;
        ячейка5 = строка.Колонка5;
        ячейка6 = строка.Колонка6;
        ячейка7 = строка.Колонка7;
        ячейка8 = строка.Колонка8;
        ячейка9 = строка.Колонка9;
        ячейка10 = строка.Колонка10;
    КонецЦИкла;
[1С]
   Oblako486
 
6 - 16.01.21 - 13:15
(5) В итоге ТаблицаЗначений медленнее, меньше чем на 1%. То есть разницы почти нет.
   Oblako486
 
7 - 16.01.21 - 13:16
(6) 0.3% получилась разница
   Oblako486
 
8 - 16.01.21 - 13:19
(7) количество итераций в обоих циклах 10 000.
   Oblako486
 
9 - 16.01.21 - 13:37
(6) хм, повторные тесты дают разницу 15%. Количество итераций увеличил до 100 000. ТаблицаЗначений медленнее.
   RomanYS
 
10 - 16.01.21 - 13:45
(6)(7)(9) это всё в пределах погрешности. Ну и возвращаясь к началу: смысла в таком сравнении нет никакого.
Если необходимый (в конкретной ситуации) сводится к обращению по индексу - используй массив, в остальных случаях подумай и выбери подходящую коллекцию.
   Oblako486
 
11 - 16.01.21 - 13:49
(10) согласен.
   МихаилМ
 
12 - 16.01.21 - 13:56
попробуйте ячейка1...ячейка10
хранить в структуре 
из тз заполнять структуру с помощью ЗаполнитьЗначниеСвойств()
   RomanYS
 
13 - 16.01.21 - 13:59
(12) ЕМНИП ЗаполнитьЗначниеСвойств несколько медленнее явного присвоения. Но не настолько чтобы стоило задумываться от её удобства в большинстве случаев.
   ДедМорроз
 
14 - 17.01.21 - 00:58
Быстрее будет одномерный массив,но с ним ещё менее удобно работать.

Список тем форума
Рекламное место пустует  Рекламное место пустует
Программист всегда исправляет последнюю ошибку.
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.