Size: a a a

2020 February 27

VP

Vladimir Petrakovich in pro.jvm
Quantum Harmonizer
на какую-нибудь гуаву инстансофов не напасёшься
А что, там коллекции не реализуют интерфейсы из java.util?
источник

QH

Quantum Harmonizer in pro.jvm
Vladimir Petrakovich
А что, там коллекции не реализуют интерфейсы из java.util?
интерфейс ничего не говорит об алгоритмической сложности
источник

VP

Vladimir Petrakovich in pro.jvm
Quantum Harmonizer
интерфейс ничего не говорит об алгоритмической сложности
Однако люди почему-то ждут, что Set.removeAll(list) должен работать быстрее, чем N^2
источник

VP

Vladimir Petrakovich in pro.jvm
И любой нормальный Set вроде бы старается оптимизировать contains()
источник

AM

Aleksander Melnichnikov in pro.jvm
Vladimir Petrakovich
И любой нормальный Set вроде бы старается оптимизировать contains()
Ну будет какой-нибудь CopyOnWriteArraySet
источник

AM

Aleksander Melnichnikov in pro.jvm
там будет тоже все плохо.
источник

VP

Vladimir Petrakovich in pro.jvm
Aleksander Melnichnikov
Ну будет какой-нибудь CopyOnWriteArraySet
У ArraySet скорее всего будет явно указано в доке, что он тормозной на операциях, которые обычно быстрые
источник

AM

Aleksander Melnichnikov in pro.jvm
Vladimir Petrakovich
У ArraySet скорее всего будет явно указано в доке, что он тормозной на операциях, которые обычно быстрые
безусловно. Но если коллекция которая пришла быстрее, почему бы не через нее работать
источник

VP

Vladimir Petrakovich in pro.jvm
Aleksander Melnichnikov
безусловно. Но если коллекция которая пришла быстрее, почему бы не через нее работать
А это трудно определить. Может, просто не стоит накидывать подобных эвристик?
источник

AM

Aleksander Melnichnikov in pro.jvm
Vladimir Petrakovich
А это трудно определить. Может, просто не стоит накидывать подобных эвристик?
Трудно. Но базово можно если есть зависимость от кол-ва элементов линейная или полиномиальная. А корнер кейсы детектить, тестировать. Наверное, поэтому Стюарт твитнул - что реализация может не всем ревьюверам понравиться  =)
источник

VP

Vladimir Petrakovich in pro.jvm
Aleksander Melnichnikov
Трудно. Но базово можно если есть зависимость от кол-ва элементов линейная или полиномиальная. А корнер кейсы детектить, тестировать. Наверное, поэтому Стюарт твитнул - что реализация может не всем ревьюверам понравиться  =)
Корнер-кейсы могут запросто вылезти в проде у кого-нибудь после обновления JDK)
Да, это явно непростой вопрос, посмотрим, что в итоге будет.
источник

AM

Aleksander Melnichnikov in pro.jvm
Это да - но смена версии на проде, всегда должна идти после нагрузочного тестирования на препроде. И по максу там отлавливать такую фигню.
источник

АБ

Александр Бруй in pro.jvm
Aleksander Melnichnikov
Это да - но смена версии на проде, всегда должна идти после нагрузочного тестирования на препроде. И по максу там отлавливать такую фигню.
согласен
источник

PK

Pavel K. in pro.jvm
Quantum Harmonizer
интерфейс ничего не говорит об алгоритмической сложности
SortedSet, RandomAccess
источник

PK

Pavel K. in pro.jvm
Vladimir Petrakovich
А это трудно определить. Может, просто не стоит накидывать подобных эвристик?
Не, чем больше интринсиков, тем лучше
источник

VP

Vladimir Petrakovich in pro.jvm
Pavel K.
SortedSet, RandomAccess
SortedSet не об этом
источник

PK

Pavel K. in pro.jvm
Vladimir Petrakovich
SortedSet не об этом
Нет, конечно. Но не просто представить неэзотерические реализации, у которых не дерево под капотом
источник

VP

Vladimir Petrakovich in pro.jvm
Pavel K.
Нет, конечно. Но не просто представить неэзотерические реализации, у которых не дерево под капотом
keySet в ConcurrentSkipListMap например
источник

QH

Quantum Harmonizer in pro.jvm
Pavel K.
SortedSet, RandomAccess
RandomAccess — прекрасный пример бесполезного и неудобного говна
источник

VP

Vladimir Petrakovich in pro.jvm
Да просто даже условный ArraySet с сортировкой вставками
источник