|
Вторничная штука
|
|||
---|---|---|---|
#18+
Вот такая штука. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
Обсудите ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2020, 21:22 |
|
Вторничная штука
|
|||
---|---|---|---|
#18+
mayton, Но зачем? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.12.2020, 04:38 |
|
Вторничная штука
|
|||
---|---|---|---|
#18+
В смысле зачем нужен map из двух элементов? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.12.2020, 07:05 |
|
Вторничная штука
|
|||
---|---|---|---|
#18+
Я решил что 2 элемента составляют некий технический порог. Когда массив ещё конкурирует с хешмапой. Впрочем нужен хороший jmh тест. Но можно сделать и 3 элемента. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.12.2020, 10:16 |
|
Вторничная штука
|
|||
---|---|---|---|
#18+
Flat3Map изобретаете? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.12.2020, 12:09 |
|
Вторничная штука
|
|||
---|---|---|---|
#18+
Хм.. может быть. Надо глянуть сорцы. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.12.2020, 12:17 |
|
Вторничная штука
|
|||
---|---|---|---|
#18+
Мне одному кажется, что железо в скором времени дорастет до тех высот, когда уже будет все равно ArrayList там использовать, или LinkedList для вставки в начало? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.12.2020, 13:38 |
|
Вторничная штука
|
|||
---|---|---|---|
#18+
faustgreen Мне одному кажется, что железо в скором времени дорастет до тех высот, когда уже будет все равно ArrayList там использовать, или LinkedList для вставки в начало? Врядли. Уже 20 лет как ... |
|||
:
Нравится:
Не нравится:
|
|||
02.12.2020, 14:02 |
|
Вторничная штука
|
|||
---|---|---|---|
#18+
Ну если интересно, то в scala реализованы специальные подклассы для мапы содержащей один элемент, два, три и четыре. и только если количество увеличивается больше четырех - тогда уже в ход идет обычная мапа. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.12.2020, 14:15 |
|
Вторничная штука
|
|||
---|---|---|---|
#18+
Ну в Java тоже есть мапа для 1 ключа. Поясню откуда возник вопрос. Несколько лет назад я смотрел dump одной продуктовой системы (JBoss+App) и заметил что большая часть объектов - это реализации HashMap или ConcurrentHashMap. И меня заинтересовал footprint. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.12.2020, 14:33 |
|
Вторничная штука
|
|||
---|---|---|---|
#18+
mayton .... И меня заинтересовал footprint. private Object [] keys; ... |
|||
:
Нравится:
Не нравится:
|
|||
02.12.2020, 15:29 |
|
Вторничная штука
|
|||
---|---|---|---|
#18+
Какие будут предложения? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.12.2020, 16:35 |
|
Вторничная штука
|
|||
---|---|---|---|
#18+
Не использовать ))) ни стандартные коллекции, ни box'инг/unbox'инг ... |
|||
:
Нравится:
Не нравится:
|
|||
02.12.2020, 17:06 |
|
Вторничная штука
|
|||
---|---|---|---|
#18+
На корректность не проверял еще. Надеюсь работает хотя-бы правильно. Код: java 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.
Код: java 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2020, 02:34 |
|
Вторничная штука
|
|||
---|---|---|---|
#18+
faustgreen Мне одному кажется, что железо в скором времени дорастет до тех высот Некоторые вполне себе используют ArrayList вместо Set на 10к+ элементов. Ну а чо? Всё, что меньше секунды - это мгновенно. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2020, 07:37 |
|
Вторничная штука
|
|||
---|---|---|---|
#18+
Я только щас вспомнил. Была библиотечка. Кажется trove называется. Там - рациональное использование бакетов. Кажется метод прямой адресации. Но я - не юзал ни разу. Можно попробовать ее в бенчмарк. Да. И еще. Яж футпринт так и не измерял. Причем тут надо deep а не shallow. Буду думать как мерять. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2020, 10:26 |
|
Вторничная штука
|
|||
---|---|---|---|
#18+
mayton Я только щас вспомнил. Была библиотечка. Кажется trove называется. Там - рациональное использование бакетов. Кажется метод прямой адресации. Во-первых она не была, а есть. Там просто упор на объём, а не скорость. Массив, хэшкод- это индекс, если занято - сдвиг на некоторое число. Поиск и вставка медленнее, зато массив намного меньше, чем число бакетов, и нет никаких списков/деревьев в бакете. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2020, 16:26 |
|
Вторничная штука
|
|||
---|---|---|---|
#18+
mayton Вот такая штука. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
Обсудите Если засунуть и ключи и значения в один массив то сэкономите на аллокации ещё одного объекта. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2020, 18:01 |
|
Вторничная штука
|
|||
---|---|---|---|
#18+
vimba, Тогда тип ключа и объекта должен совпадать. В общем, усложнее кода не очень понятное ради чего. По тестам mayton'а, если я правильно понял, пока его мапа стандартной проигрывает ))) Ну и если примитивные типы (int,long), что чаще всего и нужно, то взять нормальные не-стандартные коллекции и радоваться профиту от отсутствия box/unbox'инга. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2020, 18:49 |
|
Вторничная штука
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev vimba, Тогда тип ключа и объекта должен совпадать. В общем, усложнее кода не очень понятное ради чего. По тестам mayton'а, если я правильно понял, пока его мапа стандартной проигрывает ))) Ну и если примитивные типы (int,long), что чаще всего и нужно, то взять нормальные не-стандартные коллекции и радоваться профиту от отсутствия box/unbox'инга. Она не то чтобы проигрывает. Она - на 0-1-2 ключа ведет себя ПОЧТИ как хеш-мапа. Но если я увеличу число ключей до 3-4 тогда будет проявлен линейный поиск и она начнет проигрывать. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2020, 19:23 |
|
Вторничная штука
|
|||
---|---|---|---|
#18+
Alexey Tomin mayton Я только щас вспомнил. Была библиотечка. Кажется trove называется. Там - рациональное использование бакетов. Кажется метод прямой адресации. Во-первых она не была, а есть. Там просто упор на объём, а не скорость. Массив, хэшкод- это индекс, если занято - сдвиг на некоторое число. Поиск и вставка медленнее, зато массив намного меньше, чем число бакетов, и нет никаких списков/деревьев в бакете. Я посмотрел. Там упор сделан на работу с примитивами. И нет generic-подхода который используется везде. Если посмотреть под углом Java-generics то эта библиотека - есть молчаливый упрёк в адрес "плохой" реализации генериков Java по сравнению с С++/Scala например. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2020, 19:25 |
|
Вторничная штука
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev vimba, Тогда тип ключа и объекта должен совпадать. В общем, усложнее кода не очень понятное ради чего. Нет, в массив объектов можно пихать всё что захочешь. Обратите внимание что тип массивов уже не совпадают ни с типом ключа ни с типом значения ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2020, 23:09 |
|
|
start [/forum/topic.php?fid=59&msg=40023949&tid=2120593]: |
0ms |
get settings: |
20ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
41ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
391ms |
get tp. blocked users: |
1ms |
others: | 16ms |
total: | 500ms |
0 / 0 |