Переключение на Главную Страницу Страницы: [1] 2 3  ОтправитьПечать
Очень популярная тема (более 25 ответов) Сравнение скорости ИТЗ и класса группировки ТГ (число прочтений - 13539 )
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Сравнение скорости ИТЗ и класса группировки ТГ
18. Декабря 2006 :: 15:43
Печать  
Народ, кто-нибудь делал замеры скорости работы группировки класса ИндексированнаяТаблица (1C++) и класса ТаблицаГруппировок (автор Trad) ?

Было бы очень интересно сравнить результаты группировки с иерархией и без нее.

Возможно, у кого-то уже есть готовая обработка Улыбка

ЗЫ Нас с Дмитрием (Trad) этот вопрос заинтересовал Улыбка
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Сравнение скорости ИТЗ и класса группировки ТГ
Ответ #1 - 18. Декабря 2006 :: 15:45
Печать  
Расскажете мне потом, ладно?

И еще плз, замерьте объем памяти, необходимый для операции в своем максимуме.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
ADirks
1c++ developer
1c++ moderator
Отсутствует


А нужны ли мы нам?

Сообщений: 692
Местоположение: Новосибирск
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: Сравнение скорости ИТЗ и класса группировки ТГ
Ответ #2 - 19. Декабря 2006 :: 04:51
Печать  
Замеров не делал, но ТГ точно будет быстрее.  Всегда.
Когда-то давненько сравнивал ТГ со своей ГруппировкаТЗ.ert - в среднем ТГ была быстрее в 1.5 - 2 раза.  А группировка в ИТ почти всегда медленнее, чем ГруппировкаТЗ. Причём это результат вполне предсказуемый, и даже, я бы сказал, теоретически обоснованный Улыбка
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Сравнение скорости ИТЗ и класса группировки ТГ
Ответ #3 - 19. Декабря 2006 :: 06:27
Печать  
Ну вот Печаль
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Сравнение скорости ИТЗ и класса группировки ТГ
Ответ #4 - 19. Декабря 2006 :: 09:11
Печать  
ADirks писал(а) 19. Декабря 2006 :: 04:51:
Замеров не делал, но ТГ точно будет быстрее.  Всегда.
Когда-то давненько сравнивал ТГ со своей ГруппировкаТЗ.ert - в среднем ТГ была быстрее в 1.5 - 2 раза.  А группировка в ИТ почти всегда медленнее, чем ГруппировкаТЗ. Причём это результат вполне предсказуемый, и даже, я бы сказал, теоретически обоснованный Улыбка

Да ну, не верю.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Сравнение скорости ИТЗ и класса группировки ТГ
Ответ #5 - 20. Декабря 2006 :: 08:03
Печать  
Пример конфы для сравнения.
Осталось вставить две вещи
1) наполнение конфы данными побольше
2) работа с ТГ - группировка, обход сгруппированной таблицы.

Код для ИТЗ - группировка, обход группировки уже есть.

Подсчет времени уже встроен.
  

Diff_IT_and_TG.rar ( 54 KB | Загрузки )

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Сравнение скорости ИТЗ и класса группировки ТГ
Ответ #6 - 25. Декабря 2006 :: 09:48
Печать  
Получены результаты тестирования (тестировано Дмитрием (Trad) и мной)

Цитата:
На 10 000 элементах
ИТЗ
Группирование: 00:00:11.194
Обход группировок: 00:00:00.699
Общее время: 00:00:15.893

ТГ
Группирование: 00:00:16.498
Обход группировок: 00:00:06.253
Общее время: 00:00:22.751


Цитата:
На 27 000 элементов
ИТЗ
Группирование: 00:00:31.408
Обход группировок: 00:00:03.928
Общее время: 00:00:35.336

ТГ
Группирование: 00:00:51.363
Обход группировок: 00:00:17.228
Общее время: 00:01:08.591


Т.е. в итоге (c несколькими итерациями)

объект 1С++ "ИндексированнаяТаблица" выигрывает у класса "ТаблицаГруппировок"
- при группировке 1,4 - 2 раза
- при обходе 4-5 раз
« Последняя редакция: 26. Декабря 2006 :: 05:35 - artbear »  

Diff_IT_and_TG_2.rar ( 55 KB | Загрузки )

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Сравнение скорости ИТЗ и класса группировки ТГ
Ответ #7 - 25. Декабря 2006 :: 10:32
Печать  
Отож  Класс

А вот по памяти - думаю с большим отрывом победит ТГ.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Сравнение скорости ИТЗ и класса группировки ТГ
Ответ #8 - 25. Декабря 2006 :: 10:39
Печать  
Артур, попробуй сделать не так:
Цитата:
ИТЗ.Группировать("Склад: Склад; Товар: &Товар; Док: Док", "Ресурс1,Ресурс2,Ресурс3,Ресурс4");


а
Цитата:
ИТЗ.Группировать("Склад: *Склад; Товар: &*Товар; Док: *Док", "Ресурс1,Ресурс2,Ресурс3,Ресурс4");


И дополнительно для товара передать колонку родителя (см. документацию).

1. Что получится (результаты на тех же данных - в студию)?
2. Тестировали на SQL или на DBF? Это важно, результаты будут разные.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3050
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Сравнение скорости ИТЗ и класса группировки ТГ
Ответ #9 - 25. Декабря 2006 :: 10:48
Печать  
если *, то упорядочивание будет по внутреннему представлению и это не будет соответствовать функционалу ТГ
  

1&&2&&3
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3050
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Сравнение скорости ИТЗ и класса группировки ТГ
Ответ #10 - 25. Декабря 2006 :: 10:48
Печать  
тестировалось на ДБФ (база на локальном диске)
  

1&&2&&3
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3050
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Сравнение скорости ИТЗ и класса группировки ТГ
Ответ #11 - 25. Декабря 2006 :: 10:50
Печать  
ОФФ
в ходе тестирования заметил, что 'Ё'<'А'
  

1&&2&&3
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Сравнение скорости ИТЗ и класса группировки ТГ
Ответ #12 - 25. Декабря 2006 :: 11:02
Печать  
kms писал(а) 25. Декабря 2006 :: 10:39:
И дополнительно для товара передать колонку родителя

А смысл? Как получить родителя?
Через запрос ? Думаешь, в сумме время работы схемы выполнение подобного запроса (с колонкой родитель) + группировка будет меньше, чем время обычного запроса и обычной группировки?

А вообще я не стал так делать, ибо у ТГ нет подобного функционала Улыбка

ЗЫ пока уехал, а последний вариант конфы закинуть в форум забыл Печаль

Так что пока поверьте нам с Дмитрием на слово Улыбка

ЗЗЫ сегодня первая новогодняя корпораттивная гулянка, так что закину завтра Улыбка
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer &amp;&amp; tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Сравнение скорости ИТЗ и класса группировки ТГ
Ответ #13 - 25. Декабря 2006 :: 11:08
Печать  
trad писал(а) 25. Декабря 2006 :: 10:48:
если *, то упорядочивание будет по внутреннему представлению и это не будет соответствовать функционалу ТГ

Да, конечно.

Но это решается сортировкой по представлениям при обходе.
Потери на сортировку при обходе будут меньше (в первом приближении даже можно пренебречь).

Второй вариант - это делать как в восьмерке: получение представлений и сортировка по представлениям.
Это выигрышный вариант, т.к. нет обращений к базе, которые в ИТ неэффективны.

Третий вариант - это группировка по составным индексам:
Цитата:
ИТЗ.Группировать("Склад: Склад_представление, *Склад; Товар: Товар_представление, &*Товар; Док: Документ_date_time_iddoc, *Док", "Ресурс1,Ресурс2,Ресурс3,Ресурс4");


Дим, а где финальная версия конфы сравнения?
  

De quelle planète es-tu?
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: Сравнение скорости ИТЗ и класса группировки ТГ
Ответ #14 - 25. Декабря 2006 :: 11:10
Печать  
artbear писал(а) 25. Декабря 2006 :: 11:02:
Так что пока поверьте нам с Дмитрием на слово Улыбка

Не поверю.
Потому что это неправильное (неэффективное) использование ИТ.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 3 
ОтправитьПечать