Я сделал несколько POC и обнаружил, что при поиске в большом наборе из 400 предметов он в 6-7 раз быстрее, чем поиск в 20 наборах по 20 элементов каждый. Хотя в обоих случаях используется хеширование, но как так много стоит цикл?В чем разница в поиске между различными маленькими HashSet и 1 большой HashSet?
ответ
Ожидаете ли вы, что это займет то же время или в 20 раз дольше? С 20 наборами вам нужно 10,5 поисковых запросов в среднем (при условии, что элемент присутствует только в одном из них), поэтому должен получиться коэффициент 10.5. Это разумно близко к вашему зарегистрированному коэффициенту 6-7. Поскольку вы не дали нам никакого кода, мы не можем указать, где ваш тест не работает. Но, не прочитав ничего о how to benchmark, никто не понимает это правильно.
Если вы хотите узнать больше, предоставьте нам более подробную информацию.
PS: Вам вряд ли когда-либо понадобится 20 комплектов, как вы, вероятно, используете. A Map<Item, Integer>
намного лучше как представление заданного разбиения и так же быстро, как и Set<Item>
(фактически, Set
реализован через Map
).
- 1. В чем разница между HashSet и LinkedHashSet
- 2. Разница между HashSet и HashMap?
- 3. Разница между Set и HashSet в Java
- 4. Разница между «HashSet» и «Set» в Scala?
- 5. В чем разница между set и hashset в C++ STL?
- 6. HashSet и LinkedHashSet
- 7. O (1) поддерживается в поиске hashset при использовании альтернативного компаратора?
- 8. разница между добавлением WrappedString и строки в HashSet
- 9. Огромная разница в производительности между Vector и HashSet
- 10. Связь между HashMap и HashSet
- 11. HashSet C# элемент в HashSet изменить
- 12. HashSet
- 13. Как удалить элементы hashset в другой hashset
- 14. В чем разница между большими и маленькими сундуками?
- 15. В чем разница между 127.0.0.1 и :: 1
- 16. Почему HashMap быстрее, чем HashSet?
- 17. В чем разница между HashSet и Set и когда каждый должен быть
- 18. OutOfMemoryError в StringBuilder и HashSet
- 19. Почему ArrayList быстрее, чем HashSet в java?
- 20. Повторяющиеся значения в hashSet
- 21. Скорость перечисления Hashset
- 22. Изменение значений в HashSet
- 23. Преобразование ArrayList в HashSet
- 24. В чем разница между 127.0.0.1 и :: 1
- 25. В чем разница между «$ | ++» и «$ | = 1»
- 26. В чем разница между ++ и a + 1?
- 27. HashSet внутренне использует hashmap для его реализации, то почему hashmap быстрее, чем hashset?
- 28. В чем разница между различными HTTP-методами?
- 29. Разбор строки в HashSet
- 30. Распознавание дубликатов в HashSet
Предположительно, если вы ищете в 20 наборах, вы делаете до 20 поисковых запросов вместо одного. Хешевые поиски бывают быстрыми, потому что хеш говорит вам, где найти объект. Looped lookups медленный, потому что вы смотрите в каждом месте, пока не найдете что-то. – khelwood