|
|
|
Hashtable vs HashMap
|
|||
|---|---|---|---|
|
#18+
Господа знатоки, возник у меня следующий вопрос. Что выгоднее использовать для более быстрого процесса Hashtable или HashMap. Я так понял, что HashMap не подвержен синхронизации и вследствии этого вроде должен быть побыстрее в общем случае. Я набросал тестик и не смог получить для HashMap большей скорости. Загрузка идет в 2 раза дольше. Поиск или примерно равен, или идет дольше. Собственно говоря вопрос, я что-то не так делаю, или быстрота HashMap проявляется как-то по другому? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. На выходе имеем Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2006, 10:39 |
|
||
|
Hashtable vs HashMap
|
|||
|---|---|---|---|
|
#18+
очепатка в тесте: в четвертом шаге берутся данные из Hashmap'а опять, а не из HashTable ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2006, 10:51 |
|
||
|
Hashtable vs HashMap
|
|||
|---|---|---|---|
|
#18+
Здесь можно общую инфо глянут: http://java.sun.com/j2se/1.5.0/docs/api/java/util/HashMap.html В вашем примере HashMap вы хотя и используэте generics, но вы используете Object для хранения Integer. Это будет занимть допольнительного времени на boxing и unboxing. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2006, 12:48 |
|
||
|
Hashtable vs HashMap
|
|||
|---|---|---|---|
|
#18+
Очеловечим слегка тест: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. Results (int j = i;): Fill java.util.Hashtable: 651 Read java.util.Hashtable: 140 Fill java.util.HashMap: 1573 Read java.util.HashMap: 100 Fill java.util.Collections$SynchronizedMap: 1282 Read java.util.Collections$SynchronizedMap: 120 Fill java.util.LinkedHashMap: 1642 Read java.util.LinkedHashMap: 110 Fill java.util.TreeMap: 1222 Read java.util.TreeMap: 1752 Fill java.util.IdentityHashMap: 982 Read java.util.IdentityHashMap: 130 Results (int j = i % 1000;): Fill java.util.Hashtable: 190 Read java.util.Hashtable: 130 Fill java.util.HashMap: 140 Read java.util.HashMap: 90 Fill java.util.Collections$SynchronizedMap: 151 Read java.util.Collections$SynchronizedMap: 110 Fill java.util.LinkedHashMap: 140 Read java.util.LinkedHashMap: 100 Fill java.util.TreeMap: 260 Read java.util.TreeMap: 531 Fill java.util.IdentityHashMap: 1212 Read java.util.IdentityHashMap: 140 Забавненько... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2006, 13:01 |
|
||
|
Hashtable vs HashMap
|
|||
|---|---|---|---|
|
#18+
wnoiseочепатка в тесте: в четвертом шаге берутся данные из Hashmap'а опять, а не из HashTable Факт! Спасибо. Видно у меня уже глаза замылились. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2006, 13:12 |
|
||
|
Hashtable vs HashMap
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. Тенденция ясна... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2006, 13:12 |
|
||
|
Hashtable vs HashMap
|
|||
|---|---|---|---|
|
#18+
OUЗдесь можно общую инфо глянут: http://java.sun.com/j2se/1.5.0/docs/api/java/util/HashMap.html В вашем примере HashMap вы хотя и используэте generics, Имеете ввиду, что можно поиграться с capacity? OU но вы используете Object для хранения Integer. Это будет занимть допольнительного времени на boxing и unboxing. Попробовал. Особобого выигрыша не заметил. Но в общем случае согласен, что чем больше явной типизации в Яве, тем лучше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2006, 13:19 |
|
||
|
Hashtable vs HashMap
|
|||
|---|---|---|---|
|
#18+
2 trans: Можно конечно ради интереса. В принципе тест Hashtable бог все расставляет на места. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2006, 13:39 |
|
||
|
Hashtable vs HashMap
|
|||
|---|---|---|---|
|
#18+
OU2 trans: Можно конечно ради интереса. В принципе тест Hashtable бог все расставляет на места. Угу. Я изначально не правильно составил тест. После закачки данных, я в цикле выбирал каждое значение. В этом случае Hashtable почему-то выдает более хороший результат. Если дергать отдельные значения, HashMap явный фаворит. Но для дерганья каждого значения есть другие классы. Так что, надо было изначально строить тест на отдельных значениях. Спасибо всем откликнувшимся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.04.2006, 14:10 |
|
||
|
|

start [/forum/search_topic.php?author=Corba1983&author_mode=last_posts&do_search=1]: |
0ms |
get settings: |
6ms |
get forum list: |
11ms |
get settings: |
8ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
167ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
2ms |
| others: | 639ms |
| total: | 897ms |

| 0 / 0 |
