Здравствуйте, я буду создавать проект
который будет использовать поиск по словарю и
вставляет совсем немного. Это что то
беспокоиться о?
Да. Всегда целесообразно учитывать факторы производительности заранее.
Форма, которую вы должны принять, заключается в следующем: ваша задача - побуждать вас писать реалистичные, ориентированные на пользователя спецификации производительности. Следует побуждать вас начинать писать тесты производительности на ранних этапах и проводить их часто, чтобы вы могли видеть, как каждое отдельное изменение продукта влияет на производительность. Таким образом, вы будете немедленно проинформированы, когда изменение кода вызывает изменение производительности, влияющее на пользователя. И это должно побуждать вас часто запускать профили, чтобы вы рассуждали о производительности, основанной на эмпирических измерениях, а не на случайных догадках и догадках.
Кроме того, если я сделаю бенчмаркинг и тому подобное
и это действительно плохо, то что это
лучший способ заменить словарь
что-то еще?
Лучший способ сделать это - создать разумный уровень абстракции. Если у вас есть класс (или интерфейс), представляющий абстрактный тип данных «вставка» и «поиск», вы можете заменить его внутренние компоненты, не изменяя ни одного из вызывающих.
Обратите внимание, что добавление самого слоя абстракции влечет за собой снижение производительности. Если ваше профилирование показывает, что уровень абстракции слишком дорогой, если лишняя пара наносекунд на вызов слишком велика, вам, возможно, придется избавиться от уровня абстракции. Опять же, это решение будет основано на реальных данных о производительности.
Будет ли использовать массив с "hashed"
ключи еще быстрее? Это не
хотя поможет время вставки? 1018 *
Ни вы, ни кто-либо, кто читает это, не могут знать, какой из них быстрее, пока вы не напишите его обоими способами, а затем не сравните его в обоих направлениях в реальных условиях . Выполнение этого в «лабораторных» условиях искажает ваши результаты; вам нужно понять, как все работает, когда ГХ находится под реальным давлением памяти и так далее. Вы могли бы также спросить нас, какая лошадь будет бегать быстрее в Дерби Кентукки в следующем году. Если бы мы знали ответ, просто взглянув на гоночную форму, мы все уже были бы богаты. Вы не можете ожидать, что кто-нибудь узнает, какой из двух полностью гипотетических, неписанных фрагментов кода будет быстрее при неуказанных условиях!