новое событие
Информационный поток
Задания вакансии материалы разработки сообщения форума

Поиск в структуре и соответствии

  • Добавить свою публикацию
  • для этого требуется регистрация

Структура и соответствие являются своего рода таблицей, имеющей две колонки: ключ и значение. В колонке "Ключ" хранится индексируемый элемент, по которому производится поиск. Сам элемент поиска находится в поле "Значение". Какой механизм лучше использовать с точки зрения быстродействия поиска? Проведем серию экспериментов.

Создадим справочник Товары и наполним его 20 000 элементами. Далее с помощью нехитрой процедуры запишем данные всех этих элементов в структуру и соответствие. В первом эксперименте в ключ будем записывать ссылку для соответствия и наименование для структуруы. Во втором замере в качестве ключа будем использовать наименивание для обоих классов. В третьем для ключа структуры выбрано наименоваине, для соответствия - числовое поле.

  1 опыт 2 опыт 3 опыт
Соответствие Ссылка Строка Число
Структура Строка Строка Строка

Ниже приведен листинг процедуры для поиска значения по ключу для соответствия и структуры.

 

 Процедура ПоискЗначенияПоКлючу(ДляСоответствия, Ключ)
		Если ДляСоответствия Тогда
			Возврат ИскомоеСоответствие[Ключ];
		Иначе
			ЗначениеПоиска = Неопределено;
			ИскомаяСтруктура.Свойство(Ключ,ЗначениеПоиска);
			Возврат ЗначениеПоиска;
	КонецПроцедуры 

 

Для первого опыта получены следующие результаты:

Изображение

Как мы видим, с достаточно большим отрывом выигрывает соответствие. Время поиска для структуры показано примерно в 1/4 раза медленнее.

После второго эксперимента ситуация кардинально изменилась:

Изображение

Время поиска для соответствия с параметром типа "Строка" в ключе проигрывает структуре практически в два раза.

В ходе третьего эксперимента лидерство вновь захватило соответствие.

Изображение

Более чем в шесть раз соответствие справилось с этим заданием быстрее.

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


 
0
Читайте также
1C программист
Статья для тех кто в поиске 1С программиста или сам имеет отношение к 1С настройке
Разработки
Обработка "Забраковка" для аптек и мед. учреждений
Отслеживание брака на остатках в базе
Аудит компьютеров и программного обеспечения
Конфигурация отслеживает программное обеспечение
Поиск повторяющихся элементов справочников. ДЛЯ ЛЮБОЙ КОНФИГУРАЦИИ 7.7
Обработка для поиска дубляжей элементов справочников для 1С7.7(любой)
Еще от автора
≡ к списку статей