
Bogdan
05.10.2018
12:40:34

Nameless
05.10.2018
12:47:26
https://medium.com/@programmerr47/to-index-or-iterate-7b81039e5484
еще про андроид
в jmh получается одинаково indexed\iterator, мб что то не так делаю офк, ну сорян

Bogdan
05.10.2018
12:48:24

Google

Nameless
05.10.2018
12:50:35
# Run complete. Total time: 00:01:43
Benchmark (iterations) Mode Cnt Score Error Units
BenchMark.indexed 20 thrpt 20 983.198 ± 52.642 ops/s
BenchMark.iterator 20 thrpt 20 921.769 ± 18.794 ops/s
я так то парень с андроида, не в тот чат зашел

Quantum Harmonizer
05.10.2018
12:51:28

Nameless
05.10.2018
12:52:04
у большой джавы жит то получше соображает

Жабра
05.10.2018
12:58:40

Nameless
05.10.2018
12:58:46
гуд

OlegKrikun
05.10.2018
13:00:38
Чот трасляция походу подсдохла

Bogdan
05.10.2018
13:00:41

OlegKrikun
05.10.2018
13:01:33

Nameless
05.10.2018
13:02:43

Google

Nameless
05.10.2018
13:03:20
конечно не как замена стрим апи на циклы, но все же

Руслан
05.10.2018
13:03:39

Quantum Harmonizer
05.10.2018
13:04:17

Nameless
05.10.2018
13:04:22

OlegKrikun
05.10.2018
13:04:48

Quantum Harmonizer
05.10.2018
13:05:16

OlegKrikun
05.10.2018
13:06:05

Bogdan
05.10.2018
13:07:59

Nameless
05.10.2018
13:08:11
ну кстати не так уж и плохо, имеют более узкий скоуп, а это хорошо

Bogdan
05.10.2018
13:10:57

Quantum Harmonizer
05.10.2018
13:11:13

OlegKrikun
05.10.2018
13:12:04
Ну раз тут и так где-то об этом: енумы то юзаете в андроеде? =)

Quantum Harmonizer
05.10.2018
13:12:43

OlegKrikun
05.10.2018
13:13:25

Bogdan
05.10.2018
13:13:30

Quantum Harmonizer
05.10.2018
13:13:40

Nameless
05.10.2018
13:13:49

Google

Quantum Harmonizer
05.10.2018
13:13:56
полиморфный парсинг, например

Vladimir
05.10.2018
13:14:08

OlegKrikun
05.10.2018
13:14:27
да классно
в адаптере красиво, но вот там как раз лучше инты =)

Vladimir
05.10.2018
13:15:39

Nameless
05.10.2018
13:16:35

Quantum Harmonizer
05.10.2018
13:17:19

Vladimir
05.10.2018
13:19:33

Quantum Harmonizer
05.10.2018
13:20:29

OlegKrikun
05.10.2018
13:21:26

Nameless
05.10.2018
13:21:40
только искать только

OlegKrikun
05.10.2018
13:22:17

Nameless
05.10.2018
13:22:18
как viewtype передаешь ordinal и поиск быстрый

Quantum Harmonizer
05.10.2018
13:24:37

Nameless
05.10.2018
13:26:09

OlegKrikun
05.10.2018
13:26:56
А обратно как? ValueOf?

Andrey
05.10.2018
13:26:58
Блин. Любители микрооптимизаций в красной зоне потери читабельности кода.
Вы вообще прикидывали, на каких объёмах данных ваши микрооптимизации начинают хоть какую-то роль играть?
Если надо много и быстро считать (Big Data), то там через массовый параллелизм производительность добирается, а не через Int VS enum и прочие микрохаки.

OlegKrikun
05.10.2018
13:27:38

Nameless
05.10.2018
13:27:41

Руслан
05.10.2018
13:27:58
@kotlin_mobile

Google

Nameless
05.10.2018
13:28:04
ну а читаемость дело наживное, посмотри код телеги, а работает класс

Quantum Harmonizer
05.10.2018
13:28:54
values() выделяет новый массив ;)

Nameless
05.10.2018
13:29:36

OlegKrikun
05.10.2018
13:32:28

Quantum Harmonizer
05.10.2018
13:32:43

OlegKrikun
05.10.2018
13:33:09

Nameless
05.10.2018
13:33:24

Quantum Harmonizer
05.10.2018
13:33:29
enum class Whatever {
A, B, C;
companion object {
private val vals = values()
operator fun get(ordinal: Int) =
vals[ordinal]
}
}

Admin
ERROR: S client not available

Quantum Harmonizer
05.10.2018
13:33:33

Nameless
05.10.2018
13:34:36

OlegKrikun
05.10.2018
13:34:51

Andrey
05.10.2018
13:35:27
да в ui всегда играет
Насчёт всегда играет - точно бред. Никакой фактор ни в какой области не является абсолютно решающим.
На сколько процентов использование Int вместо enum ускоряет отклик вашего UI приложения?
Насколько существенно для пользователя это ускорение отклика?
Насколько горячий код с Int вместо enum в вашем UI приложении?
Без ответов на эти вопросы нет смысла говорить, что от оптимизации есть хоть какая-то польза, кроме вреда.

Nameless
05.10.2018
13:36:25

Quantum Harmonizer
05.10.2018
13:36:59
Тут есть один нюанс: любое приложение всегда стартует слишком долго. Поэтому выпиливать лишние классы бывает полезно.

Andrey
05.10.2018
13:40:55
Ну может играть - очевидно, может. Как и в Big Data, и в High Load и в любой другой области.
Я категорически против подхода: "оптимизируем всё и везде на скорость по максимуму".
Надо идти по приоритетам:
1. Код должен быть корректным.
2. Если код корректный, но не укладывается в требования по производительности - выявляем узкие места и оптимизируем их.

Nameless
05.10.2018
13:41:23

Quantum Harmonizer
05.10.2018
13:41:36
Ну это всё более-менее очевидно, да.

Nameless
05.10.2018
13:42:18
но после пары\тройки\десятка таких итераций человек сразу может начать писать страшный оптимизированный код в каких-то рамках

Google

Andrey
05.10.2018
13:42:31

Nameless
05.10.2018
13:42:39
и ему норм будет

Andrey
05.10.2018
13:46:55

Quantum Harmonizer
05.10.2018
13:47:43
Вот заведу я особый случай HashSet для Long, и будет у него интерфейс как у Set — кому это мешает?

Nameless
05.10.2018
13:48:30

Andrey
05.10.2018
13:49:27


OlegKrikun
05.10.2018
14:02:16

Andrey
05.10.2018
14:02:36

OlegKrikun
05.10.2018
14:02:45

Nameless
05.10.2018
14:03:07

Quantum Harmonizer
05.10.2018
14:03:28

Nameless
05.10.2018
14:03:59
От немного до много

Quantum Harmonizer
05.10.2018
14:04:09
?

Andrey
05.10.2018
14:04:18

Alexander
05.10.2018
14:06:30
Оптимизация ради оптимизации это почти всегда плохо. Почти любая оптимизация - это специализация. А специализация - это ограничения.

OlegKrikun
05.10.2018
14:09:35
Андрей, вернёмся к тому с чего я тут за енумы начал, вот есть сущьность которая на основе данных генерирует вьшки для отображения в списке, каждый итем списка имеет тип представленый интом, вьюшки созданные попадают в пул и реюзаются, при быстрой прокрутке метод биндинга данных к вью вызывается очень часто. Вот и спрашивается использовать ли енум в такой ситуации для представления типа вьюшки при условии что проход gc вызовет "заикание" при прокрутке списка =) при этом оптимизацией (в сторону читаемости удобности написания) тут выглядит использование енума, по умолчанию все делают набор инт констант

Quantum Harmonizer
05.10.2018
14:10:27