Chosing подходящий размер таблицы для Хеша

Как это?

<a href="(?!http://)([^"]*)">
9
задан kylex 13 November 2008 в 02:05
поделиться

6 ответов

Это зависит от коэффициента загрузки ("процент полная" точка, где таблица увеличит свой размер и перераспределит ее элементы). Если Вы знаете, что у Вас есть точно 1 000 записей, и то число никогда не будет изменяться, можно просто установить коэффициент загрузки на 1,0 и начальный размер к 1 000 для максимальной производительности. Если бы Вы не были уверены в точном размере, то Вы могли бы оставить коэффициент загрузки в его значении по умолчанию 0,75 и установить Ваш начальный размер на 1334 (ожидал size/LF) для действительно хорошей производительности, по стоимости дополнительной памяти.

Можно использовать следующего конструктора для установки коэффициента загрузки:

Hashtable(int initialCapacity, float loadFactor) 
9
ответ дан 4 December 2019 в 14:32
поделиться

Дважды хорошо.

У Вас нет большого набора ключей. Не беспокойтесь о трудных дискуссиях о Вашей реализации HashTable и идите на 2000.

0
ответ дан 4 December 2019 в 14:32
поделиться

Существует некоторое обсуждение этих факторов в документации для Hashtable

1
ответ дан 4 December 2019 в 14:32
поделиться

Необходимо включить в хеш-функцию также.

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

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

Какие вещи Вы хешируете? Больше детали должно генерировать лучший совет.

3
ответ дан 4 December 2019 в 14:32
поделиться

Позвольте ему вырасти. С этим размером автоматическая обработка прекрасна. Кроме этого, 2 x размера + 1 являются простой формулой. Простые числа также довольно хороши, но как только Ваш набор данных достигает определенного размера, реализация хеша могла бы решить перехешировать и вырастить таблицу.

Ваши ключи управляют эффективностью и надо надеяться достаточно отличны.

Нижняя строка: Задайте вопрос размера, когда у Вас будут проблемы, такие как размер или медленная производительность кроме этого:Не волнуйся!

1
ответ дан 4 December 2019 в 14:32
поделиться

Я хотел бы повторить то, что https://stackoverflow.com/users/33229/wwwflickrcomphotosrene-germany сказал выше. 1000 не походит на очень большой хеш мне. Я использовал много хеш-таблиц о том размере в Java, не видя очень в способе проблем производительности. И я почти никогда не слоняюсь без дела с размером или коэффициентом загрузки.

Если Вы выполнили профилировщика на своем коде и решили, что хеш-таблица является Вашей проблемой, то любой ценой начинают настраивать. Иначе я не предположил бы, что у Вас есть проблема, пока Вы не уверены.

В конце концов, в большей части кода, проблема производительности не состоит в том, где Вы думаете, что это. Я пытаюсь не ожидать.

0
ответ дан 4 December 2019 в 14:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: