Есть ли существенная разница в производительности (если я выполняю случайный поиск), между использованием строковых и int-ключей? В моем конкретном случае строковые ключи более удобны, но с небольшими трудностями я мог бы получить настройку с помощью клавиш int. Мне просто интересно, стоит ли лишних усилий.C++ unordered_map string vs int key performance
2
A
ответ
3
Довольно ясно, что хэширование и сравнение строк обычно дороже, чем хеширование и сравнение int
s.
Независимо от того, имеет ли это какое-либо практическое значение для вашей конкретной программы, мы не можем сказать. Вам нужно будет профилировать свою программу и узнать сами.
Мой совет заключается в коде для ясности и простоты обслуживания, а затем в профиле и оптимизации только узких мест.
Смежные вопросы
- 1. SQL Server Datetime vs Int key performance
- 2. C++ unordered_map, где key также unordered_map
- 3. Hive: Join Performance - String vs Int
- 4. performance stringbuf vs string
- 5. String vs GString Performance
- 6. Boost :: Multiindex vs string indexed boost :: unordered_map
- 7. ржавчина vs c performance
- 8. C# redis vs mongodb performance
- 9. String vs long performance в Java
- 10. C++ string (int) + string (int)
- 11. Swift RC4 vs. Objective-C RC4 Performance
- 12. Database Design Primay Key, ID vs String
- 13. tsql datetime vs int query performance
- 14. string.contains() vs string.equals() или string == performance
- 15. boost interprocess unordered_map string
- 16. C++ realloc performance vs malloc
- 17. C++ Array vs Vector performance test explain
- 18. C++ iostream vs. C stdio performance/overhead
- 19. differentiate unordered_map vs map
- 20. C# performance - Regex vs. multiple Split
- 21. [performance] --- string :: operator + = vs. vector <char> push_back
- 22. Использование unordered_map, где Key является членом T
- 23. C# string vs String, bool vs Boolean
- 24. MongoDB C# Driver: API vs Linq Performance
- 25. Pow() vs. exp() performance
- 26. C++ int string, concatenate string
- 27. Используйте векторы как key в unordered_map
- 28. 2dsphere vs 2d performance performance
- 29. Synchronized vs ReadWriteLock performance
- 30. Django Query Performance Filtering Vs Foreign Key Set Lookup
Кроме того, хеширование будет более дорогостоящим (и, скорее, более частым), чем сравнение. Однако, если вы все равно будете делать свой собственный хэширование, сравнение будет основным различием, так как оба метода нуждаются в хэшировании. –
Это очень зависит от характера струн, а также от реализации stdlib. Если оба используют одну и ту же хэш-функцию для int и string, а строки в среднем имеют размер int, тогда все, вероятно, будет неразличимым. Как всегда: лучше всего проверить его самостоятельно, для своей собственной вселенной данных. – PlasmaHH