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



Сообщений: 94
Зарегистрирован: 27. Января 2007
Re: к вопросу быстродействия индексированных табли
Ответ #30 - 30. Января 2007 :: 09:08
Печать  
Все, ресурс отключен.
  

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


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: к вопросу быстродействия индексированных табли
Ответ #31 - 30. Января 2007 :: 09:10
Печать  
Вот этот код зачем
Код
Выбрать все
Если Табл.ПолучитьСтроку("индЛексема")=1 Тогда
	ВекторH.Вес=Табл.hi;	  
!!!!!	Табл.ВыбратьСтроки("индЛексема"); !!!
 


Т.е. ты при каждом поиске заново делаешь подготовку выборки.
ИМХО так тормозит.
Выкинь эту строку

Жду новых замеров

ЗЫ Файлы прекрасно прикрепляются Улыбка
или пиши в техничку, Федор поправит
  

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: к вопросу быстродействия индексированных табли
Ответ #32 - 30. Января 2007 :: 09:14
Печать  
Лесник!!!!
Я сейчас матом говорить буду.

Нужен там этот код и все. Смотри замеры- там две колонки,
новых данных НЕ будет.
  

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


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: к вопросу быстродействия индексированных табли
Ответ #33 - 30. Января 2007 :: 09:22
Печать  
vlf писал(а) 30. Января 2007 :: 09:14:
Лесник!!!!
Я сейчас матом говорить буду.

Нужен там этот код и все. Смотри замеры.


1. Это ты кому?
Здесь матом говорить не нужно, тебе же помочь пытаемся?

2. Алгоритм плох - нафига второй раз делать выборку, если она у тебя и так уже включена.
Просто нужно сделать так, чтобы первое значение не пропадало в твоем случае.
Т.е. просто вместо цикла
Код
Выбрать все
Если Табл.ПолучитьСтроку("индЛексема")=1 Тогда
	Табл.ВыбратьСтроки("индЛексема");
	Пока Табл.ПолучитьСтроку("индЛексема")=1 Цикл
// делаем что нужно
	КонецЦикла;
 


сделать проверку в конце цикла
Код
Выбрать все
Если Табл.ПолучитьСтроку("индЛексема")=1 Тогда
	Табл.ВыбратьСтроки("индЛексема");
	Пока 1=1 Цикл
// делаем что нужно
		Если Табл.ПолучитьСтроку("индЛексема")=0 Тогда
			Прервать;
		КонецЕсли;
	КонецЦикла;
 



Для ТЗ же нет подобного тупого торможения.
А для ИТЗ ты зачем-то так сделал Печаль

ЗЫ ИТЗ практически всегда быстрее ТЗ, разве что на маленьких данных проиграет, что понятно.
  

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


1С++ любитель

Сообщений: 447
Местоположение: г. Новосибирск
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: к вопросу быстродействия индексированных табли
Ответ #34 - 30. Января 2007 :: 09:22
Печать  
1) НЕ РУГАТЬСЯ!!!  Злой

2) зачем такой временный ресурс предложил - вот я бы тоже посмотрел, а уже поздно - ссылка кердык Печаль
  
Наверх
 
IP записан
 
vlf
Junior Member
**
Отсутствует



Сообщений: 94
Зарегистрирован: 27. Января 2007
Re: к вопросу быстродействия индексированных табли
Ответ #35 - 30. Января 2007 :: 09:29
Печать  
Цитата:
Здесь матом говорить не нужно, тебе же помочь пытаемся?

Я здесь о помощи никого не прошу.
Просто довожу до сообщества, что ИндексированнаяТаблица может отставать от таблицы значений

Причина тривиальна.
ПолучитьСтроку(индекс) рабатает на 1мс медленнее ПолучитьСтрокуПоНомеру()


ОТСТАВАНИЕ ПРОИСХОДИТ В ЦИКЛЕ.
ДО ЦИКЛА ИТЗ РАБОТАЕТ НАМНОГО БЫСТРЕЕ, и нечего там ковырятся.


« Последняя редакция: 31. Января 2007 :: 14:00 - vlf »  

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


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

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: к вопросу быстродействия индексированных табли
Ответ #36 - 30. Января 2007 :: 09:29
Печать  
У тебя неправильно сделан подсчет времени Печаль
Т.е. время повторной выборки все равно включается в итоговый подсчет Печаль

Воспользуйся моими классами "Общие.Таймер" и "Общие.ТаймерСКоличеством", там нет подобных косяков Улыбка
и они правильно подсчитывают время и количество вызовов даже для нескольких вызовов, например, в цикле.
  

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: к вопросу быстродействия индексированных табли
Ответ #37 - 30. Января 2007 :: 09:31
Печать  
Повторная выборка ДО ЦИКЛА. И там ИТЗ в 5-7 раз быстрее
  

... истина всегда где-то рядом ...
Наверх
www  
IP записан
 
DrACe
1c++ donor
1c++ power user
Отсутствует


1С++ любитель

Сообщений: 447
Местоположение: г. Новосибирск
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: к вопросу быстродействия индексированных табли
Ответ #38 - 30. Января 2007 :: 09:55
Печать  
спасибо, скачал  Улыбка

хотя, конечно, универсальными эти примеры не назовешь... ну да понятно - всем жалко свое время...

меня тоже смутило двойное использование метода Табл.ВыбратьСтроки("индЛексема"); впрочем из примера не ясно, что же именно тестировалось на скорость...  Озадачен
  
Наверх
 
IP записан
 
vlf
Junior Member
**
Отсутствует



Сообщений: 94
Зарегистрирован: 27. Января 2007
Re: к вопросу быстродействия индексированных табли
Ответ #39 - 30. Января 2007 :: 10:00
Печать  
Ладно, придется отвечать публично.

Есть такая строка
ВекторH.Вес=Табл.hi;

Два раза делается выборка, что бы это присваивание вынести из цикла.

Все верно код для себя, и специально для теста не переделывал.

Можно просто убрать одну выборку, а ВекторH.Вес=Табл.hi;
перенести в тело цикла.

Понятно, что это сильно непривычно
  

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



Сообщений: 94
Зарегистрирован: 27. Января 2007
Re: к вопросу быстродействия индексированных табли
Ответ #40 - 30. Января 2007 :: 10:10
Печать  
В n-й раз повторяю,что мерилось
1. Время выполнения функций УстановитьФильтр()+ВыбратьСтроки()
2. Время выполнения ТЗ.НайтиЗначение()

Здесь все очень красиво, ИТЗ быстрее в разы.

3. Общее время цикла + число итераций для ТЗ
где счетчик в переменной, а ТЗ позиционируется функцией ПолучитьСтрокуПоНомеру()
4. Общее время цикла ИТЗ, где счетчик и позиционирование ИТЗ в функции ПолучитьСтроку()

разница в совокупном времени циклов поделенное на число итераций дает примерную оценку  скорости методов таблиц по интервальной шкале.

Получается, что ПолучитьСтроку() на 1-3мс медленнее чем ПолучитьСтрокуПоНомеру()

Точнее результат получить, вряд-ли возможно. Слишком много внешних факторов - объем и структура наполнения таблиц, загруженность процессора, и т.д. и т.п.
  

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



Сообщений: 94
Зарегистрирован: 27. Января 2007
Re: к вопросу быстродействия индексированных табли
Ответ #41 - 30. Января 2007 :: 10:34
Печать  
Похоже, убедил
что
     1 Хотя ИндексированнаяТаблица значительно лучше по сравнению с ТаблицейЗначений.
     2. В случае построения оптимальных алгоритмов, ИТ (серьезно) проигрывает им по скорости . (см страницу 1)
  

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


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

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: к вопросу быстродействия индексированных табли
Ответ #42 - 30. Января 2007 :: 11:21
Печать  
vlf писал(а) 30. Января 2007 :: 10:34:
     2. В случае построения оптимальных алгоритмов, ИТ (серьезно) проигрывает им по скорости . (см страницу
  • Можно объяснить смысл тестирования элементарных операций вместо интегральной оценки эффективности решений?
  • Вопрос масштабирования решений (зависимость результатов от размера набора тестовых данных) рассматривался?
  • Можно привести пример оптимального алгоритма, в котором поиск выполняется по двум (а по 10?) колонкам (составной индекс), в котором ИТ проигрывает на любых данных?
  •   

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


    1С++ любитель

    Сообщений: 447
    Местоположение: г. Новосибирск
    Зарегистрирован: 23. Мая 2006
    Пол: Мужской
    Re: к вопросу быстродействия индексированных табли
    Ответ #43 - 30. Января 2007 :: 11:39
    Печать  
    kms, я думаю тут не нужно ничего доказывать (я даже не говорю о перспективной полезности данного мероприятия), потому что vlf "...не просит помощи...", совать сытому кусок хлеба бессмысленно
      
    Наверх
     
    IP записан
     
    kms
    1c++ power user
    1c++ moderator
    Отсутствует


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

    Сообщений: 4632
    Зарегистрирован: 19. Мая 2006
    Re: к вопросу быстродействия индексированных табли
    Ответ #44 - 30. Января 2007 :: 12:03
    Печать  
    DrACe писал(а) 30. Января 2007 :: 11:39:
    kms, я думаю тут не нужно ничего доказывать (я даже не говорю о перспективной полезности данного мероприятия), потому что vlf "...не просит помощи...", совать сытому кусок хлеба бессмысленно

    Ну да, это я так, для поддержания разговора Улыбка

    По серьезному: я уверен, что vlf, несмотря на некоторую склонность к тенденциозным и поспешным выводам, в состоянии в итоге грамотно оценить возможности и преимущества различных решений.
    Просто эти преимущества лежат несколько в иной плоскости, в которую я и постарался направить дальнейшее исследование.

    А с помощью я завязал на 30й секунде матча, поскольку понял, что vlf достаточно подготовлен, чтобы справиться самостоятельно.
    Но благородную идею популяризации ИТ не могу не поддержать по мере сил Улыбка
      

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