Переключение на Главную Страницу Страницы: 1 ... 5 6 [7] 8 9 10 ОтправитьПечать
Очень популярная тема (более 25 ответов) к вопросу быстродействия индексированных таблиц. (число прочтений - 57404 )
vlf
Junior Member
**
Отсутствует



Сообщений: 94
Зарегистрирован: 27. Января 2007
Re: к вопросу быстродействия индексированных табли
Ответ #90 - 01. Февраля 2007 :: 08:21
Печать  
Вот мой тест.
Даже на "тривиальных" данных у ТЗ превосходство
  

_.ert ( 8 KB | Загрузки )

... истина всегда где-то рядом ...
Наверх
www  
IP записан
 
vlf
Junior Member
**
Отсутствует



Сообщений: 94
Зарегистрирован: 27. Января 2007
Re: к вопросу быстродействия индексированных табли
Ответ #91 - 01. Февраля 2007 :: 08:26
Печать  
по тесту artbear
Код
Выбрать все
	Наименование = ИТЗ.Получить(, "Наименование");
				Таймер.Запуск("2 ИТЗ.ПолучитьСтроку");
					лфНашли = ИТЗ.ПолучитьСтроку("Наименование");
				Таймер.Стоп("2 ИТЗ.ПолучитьСтроку");
 



Мы здесь меряем время выполнения Таймер.Запуск("2 ИТЗ.ПолучитьСтроку"); ?

получитьСтроку() явно быстрее вызова двух методов


В таких измерениях

Код
Выбрать все
Состояние("Выполнено..."+Цел(Тек/лКоличествоСтрок1*100)+"%");
 



Офигенная трата времени

Код
Выбрать все
	Таймер.Запуск("2 ТЗ.ПолучитьСтрокуПоНомеру");
					ТЗ2.ПолучитьСтрокуПоНомеру(лПоз);
				Таймер.Стоп("2 ТЗ.ПолучитьСтрокуПоНомеру");
 



Здесь тоже время своей компоненты меряем

Смотрим мой тест.

для fez - прикрепление файлов нормально не работает
исходное имя "Для форума.ert"
  

... истина всегда где-то рядом ...
Наверх
www  
IP записан
 
vlf
Junior Member
**
Отсутствует



Сообщений: 94
Зарегистрирован: 27. Января 2007
Re: к вопросу быстродействия индексированных табли
Ответ #92 - 01. Февраля 2007 :: 08:38
Печать  
Небольшой комментарий к моему тесту
Код
Выбрать все
Для ё=1 по 300 Цикл
		Для й=1 по 1000 Цикл
 



число 300, рекомендую ставить равное количеству мегабайт на машине.

соответственно
ИщемЭто=ё+(ё-1)*148;  // значит ищем 1, 149 298

вместо числа 148 пишем (Число мегабайт/2 -2)

____________________________
второй цикл

1000 - либо меняем на 500
Либо в конце теста
Сообщить("Отставание "+Число(((м3-м2)-(м6-м5))/1000));
  

... истина всегда где-то рядом ...
Наверх
www  
IP записан
 
vlf
Junior Member
**
Отсутствует



Сообщений: 94
Зарегистрирован: 27. Января 2007
Re: к вопросу быстродействия индексированных табли
Ответ #93 - 01. Февраля 2007 :: 08:42
Печать  
Кстати, можно проверить на моем-же тесте:
конструкция
Тз.ПолучитьСтрокуПоНомеру(ё);
x=Тз.Колонка1;
y=Тз.Колонка2;
z=Тз.Колонка3;

быстрее
Чем
х=Тз.ПолучитьЗначение(ё,1);
у=Тз.ПолучитьЗначение(ё,2);
z=Тз.ПолучитьЗначение(ё,3);

  

... истина всегда где-то рядом ...
Наверх
www  
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: к вопросу быстродействия индексированных табли
Ответ #94 - 01. Февраля 2007 :: 09:11
Печать  
artbear писал(а) 01. Февраля 2007 :: 05:04:
Результаты предсказуемы с точки зрения математики - ИТЗ сильно выигрывает у ТЗ, поиск в ИТЗ намного более эффективен, чем у ТЗ.

Итого - чем больше нужно искать, тем ИТЗ быстрее.
А если еще использовать уникальность при поиске, то ИТЗ даст еще больше выигрыша


Твои результаты только подтверждают мои результаты - у тебя поиск всего 3 раза, естественно, тут ИТЗ будет отставать.
А попробуй сделать поиск 100, 1000, 10 тыс и увидишь разницу Улыбка
  

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: к вопросу быстродействия индексированных табли
Ответ #95 - 01. Февраля 2007 :: 09:25
Печать  
vlf писал(а) 01. Февраля 2007 :: 08:38:
Либо в конце теста
Сообщить("Отставание "+Число(((м3-м2)-(м6-м5))/1000));

Так ты меряешь разницу только между ИТЗ.ПолучитьСтроку() и ТЗ.ПолучитьЗначение()
Это отставание ничего не значит.

А в реальных задачах намного больше времени занимает именно поиск, где ТЗ явно проигрывает ИТЗ.
Даже при 10 попытках поиска Улыбка - а в реале их наверняка больше будет !
  

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: к вопросу быстродействия индексированных табли
Ответ #96 - 01. Февраля 2007 :: 09:29
Печать  
vlf писал(а) 01. Февраля 2007 :: 08:26:
по тесту artbear
Код
Выбрать все
				Таймер.Запуск("2 ИТЗ.ПолучитьСтроку");
					лфНашли = ИТЗ.ПолучитьСтроку("Наименование");
				Таймер.Стоп("2 ИТЗ.ПолучитьСтроку");
 



Мы здесь меряем время выполнения Таймер.Запуск("2 ИТЗ.ПолучитьСтроку"); ?

получитьСтроку() явно быстрее вызова двух методов

Код
Выбрать все
	Таймер.Запуск("2 ТЗ.ПолучитьСтрокуПоНомеру");
					ТЗ2.ПолучитьСтрокуПоНомеру(лПоз);
				Таймер.Стоп("2 ТЗ.ПолучитьСтрокуПоНомеру");
 



Здесь тоже время своей компоненты меряем


Ты бы немного код класса таймера поизучал бы.
Какое время компоненты меряем-то?
Затраты на вызов метода таймера ничтожны малы по сравнению с затратами на работу с таблицами.

И затраты на вызовы методов таймера есть в обоих случаях - и для ТЗ, и для ИТЗ, т.е. их можно не учитывать.
  

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



Сообщений: 94
Зарегистрирован: 27. Января 2007
Re: к вопросу быстродействия индексированных табли
Ответ #97 - 01. Февраля 2007 :: 10:27
Печать  
Цитата:
Так ты меряешь разницу только между ИТЗ.ПолучитьСтроку() и ТЗ.ПолучитьЗначение()
Это отставание ничего не значит.
А в реальных задачах намного больше времени занимает именно поиск, где ТЗ явно проигрывает ИТЗ.


Что есть реальная задача

Цитата:
Даже при 10 попытках поиска  - а в реале их наверняка больше будет ! 


именно
10 попыток Смех
  

... истина всегда где-то рядом ...
Наверх
www  
IP записан
 
vlf
Junior Member
**
Отсутствует



Сообщений: 94
Зарегистрирован: 27. Января 2007
Re: к вопросу быстродействия индексированных табли
Ответ #98 - 01. Февраля 2007 :: 10:30
Печать  
Цитата:
Затраты на вызов метода таймера ничтожны малы по сравнению с затратами на работу с таблицами.


Совсем не согласен.

Вызов метода (класса ?) - процесс не самый быстрый.
  

... истина всегда где-то рядом ...
Наверх
www  
IP записан
 
АЛьФ
FormEx developer
1c++ developer
Отсутствует



Сообщений: 1538
Местоположение: Санкт-Петербург
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: к вопросу быстродействия индексированных табли
Ответ #99 - 01. Февраля 2007 :: 10:37
Печать  
vlf писал(а) 01. Февраля 2007 :: 10:30:
Цитата:
Затраты на вызов метода таймера ничтожны малы по сравнению с затратами на работу с таблицами.


Совсем не согласен.

Вызов метода (класса ?) - процесс не самый быстрый.

По сравнению со временем выполнения замеряемых методов, собственно вызов метода - ничтожно малая величина.
  

FormEx developer
Наверх
www  
IP записан
 
vlf
Junior Member
**
Отсутствует



Сообщений: 94
Зарегистрирован: 27. Января 2007
Re: к вопросу быстродействия индексированных табли
Ответ #100 - 01. Февраля 2007 :: 10:42
Печать  
Цитата:
Результаты предсказуемы с точки зрения математики - ИТЗ сильно выигрывает у ТЗ


Математика, так математика (обращаю внимание, что модель скорее когнитивная)

случай ИТЗ

Время(ИТЗ.ПолучитьСтроку) = Время(ПодготовкаКпереходуВAddIn)+Время(ПоискаФункцииПоИмени)+
ВИндексе)+Время(ПозиционированияТаблицы)+Время(ВозвратВКод1С)

Случай ТЗ

С)

В втором случае нет поиска индекса и поска в индексе след позиции

  

... истина всегда где-то рядом ...
Наверх
www  
IP записан
 
vlf
Junior Member
**
Отсутствует



Сообщений: 94
Зарегистрирован: 27. Января 2007
Re: к вопросу быстродействия индексированных табли
Ответ #101 - 01. Февраля 2007 :: 10:45
Печать  
Цитата:
По сравнению со временем выполнения замеряемых методов, собственно вызов метода - ничтожно малая величина.

Позволю не согласиться.

Тестим?
  

... истина всегда где-то рядом ...
Наверх
www  
IP записан
 
vlf
Junior Member
**
Отсутствует



Сообщений: 94
Зарегистрирован: 27. Января 2007
Re: к вопросу быстродействия индексированных табли
Ответ #102 - 01. Февраля 2007 :: 11:05
Печать  
прошу тест

  

test_001.ert ( 24 KB | Загрузки )

... истина всегда где-то рядом ...
Наверх
www  
IP записан
 
vlf
Junior Member
**
Отсутствует



Сообщений: 94
Зарегистрирован: 27. Января 2007
Re: к вопросу быстродействия индексированных табли
Ответ #103 - 01. Февраля 2007 :: 11:06
Печать  
Пожалуйста класс
  

Class.rar ( 4 KB | Загрузки )

... истина всегда где-то рядом ...
Наверх
www  
IP записан
 
vlf
Junior Member
**
Отсутствует



Сообщений: 94
Зарегистрирован: 27. Января 2007
Re: к вопросу быстродействия индексированных табли
Ответ #104 - 01. Февраля 2007 :: 11:07
Печать  
Величины почти равны
  

... истина всегда где-то рядом ...
Наверх
www  
IP записан
 
Переключение на Главную Страницу Страницы: 1 ... 5 6 [7] 8 9 10
ОтправитьПечать