
Mikhail
10.10.2018
07:12:11
Ну выиграешь ты 1нс на каждый вызов хэшкода
И что дальше?

Алексей
10.10.2018
07:13:14
а дальше вопрос, сколько таких вызовов
я лишь предложил вариант улучшения, вопрос только в том, насколько это нужно и насколько это - улучшение

Google

Алексей
10.10.2018
07:13:48
и вот тут я не знаю ответов:)

Alexander
10.10.2018
07:14:13
Хэш-код имеет смысле кэшировать, но только для заведомо иммутабельных классов, которые часто используют в качестве ключей к хэш-картах. Для строк так и делается. Если вы не планируете использовать объект в качестве ключа, это не очень обоснованно

Vladimir
10.10.2018
07:14:49

Алексей
10.10.2018
07:14:52

Alexander
10.10.2018
07:15:22
А зачем такие сложности? Просто переопределяешь его для тех классов, которые будут ключами. Их не может быть много

Konstantin
10.10.2018
07:16:52

Vladimir
10.10.2018
07:18:00

Egor
10.10.2018
07:18:06

Алексей
10.10.2018
07:18:08

Beholder
10.10.2018
07:19:11
фича спорная, сомнительно что такой кэширующий hashcode нужен всем. а кому нужен - писать руками

Konstantin
10.10.2018
07:19:24

Mikhail
10.10.2018
07:19:32

Google

Konstantin
10.10.2018
07:19:51

Алексей
10.10.2018
07:20:23

Egor
10.10.2018
07:20:42

Mikhail
10.10.2018
07:21:09

Алексей
10.10.2018
07:21:18

Mikhail
10.10.2018
07:22:32
ща проверю

Алексей
10.10.2018
07:22:42

dimiii
10.10.2018
07:22:47
>кэширующий...
кто-то решил бросить вызов основной проблеме программирования?

Mikhail
10.10.2018
07:23:31
или мемоизующий

Beholder
10.10.2018
07:24:57
как вообще все примотались к этим дата обжектам, все волшебства от них хотят...

dimiii
10.10.2018
07:25:01
anyway, только сейчас сочинил золотое правило - такие вещи хороши только тогда и только в таком исполнении, когда легко подключаются и отключаются

Konstantin
10.10.2018
07:25:04
А зачем так делать? Или что-то вынуждает?
В общем момент какой — вызывается мой метод, в котором я как-то обрабатываю данные (хочу как раз прикрутить корутины туда) и после хочу вызвать указанный колбэк. Метод вызываю не я сам, потом контролировать это не могу. Но при этом последовательность вызовов колбэка нужно сохранить

Quantum Harmonizer
10.10.2018
07:25:18

Beholder
10.10.2018
07:25:40

Алексей
10.10.2018
07:25:50

Quantum Harmonizer
10.10.2018
07:25:56

Алексей
10.10.2018
07:26:58

Vladimir
10.10.2018
07:27:02

Google

Quantum Harmonizer
10.10.2018
07:27:46

Алексей
10.10.2018
07:29:19
так что тут бы очень пригодилось
ну и в проектах данные кроме как от IOC по этим ключам получить никак нельзя было
не спорю, что это отдельный случай упоротости, но факт

Quantum Harmonizer
10.10.2018
07:46:27

Алексей
10.10.2018
07:47:28

Mikhail
10.10.2018
08:06:40

Igor
10.10.2018
08:09:11

Mikhail
10.10.2018
08:09:23
в общем, какую-то горсть наносекунд выиграть можно
но стоит ли еще одно поле в каждом дата классе того?

Алексей
10.10.2018
08:12:02
получается, выигрышь в полтора раза?
грубо говоря
да, получается, от задачи сильно зависит, очень сильно
А что за аннотация @Benchmark?

Mikhail
10.10.2018
08:14:11

Алексей
10.10.2018
08:14:32

Google

Igor
10.10.2018
08:14:53

Quantum Harmonizer
10.10.2018
08:14:57
ок
кстати да, первое, что попросят JB к перформансным задачам — бенчмарки

Алексей
10.10.2018
08:15:09

Igor
10.10.2018
08:16:00
Как то странное, что с “кешированием” получается в 1.5 медленне ?

Алексей
10.10.2018
08:16:40

Mikhail
10.10.2018
08:16:44

Алексей
10.10.2018
08:17:01
там не скорость а score (количество операций в секунду, как я понял)

Igor
10.10.2018
08:17:23
Подожи
”jmh.KotlinLazy.eagerHash": 4644407.477 ops/s
"jmh.KotlinLazy.lazyHash" : 2535249.580 ops/s

Admin
ERROR: S client not available

Mikhail
10.10.2018
08:17:41
(доверительный интервал)

Алексей
10.10.2018
08:18:06

Mikhail
10.10.2018
08:18:16

Алексей
10.10.2018
08:18:35
но получается, что у кеша погрешность меньше

Igor
10.10.2018
08:18:40
А, понятно ?

Алексей
10.10.2018
08:18:48
или имеется ввиду погрешность в числе операций в секунду?

Mikhail
10.10.2018
08:18:53
Да там она все равно на порядки меньше значения

Алексей
10.10.2018
08:19:08
ясненько

Google

Алексей
10.10.2018
08:21:13
@themishkun как можно с вами (тобой) связаться кроме телеги? я в личку писать не могу -.-

Mikhail
10.10.2018
08:22:42

Алексей
10.10.2018
08:23:19
-.-

Mikhail
10.10.2018
08:23:24

Mikhail
10.10.2018
08:27:34

Quantum Harmonizer
10.10.2018
08:28:20

Mikhail
10.10.2018
08:29:40
Как вариант.
Т.е. делаешь универсальную спеку? Есть одна идейка, но она немного сложная, вечерком распишу

Quantum Harmonizer
10.10.2018
08:30:16

Mikhail
10.10.2018
08:52:46

Mikhail
10.10.2018
08:53:10
пасиба

Sviat
10.10.2018
09:08:19
Всем привет, не могу подружить котлин, джексон и прогвард. Прописываю -keep kotlin.Metadata но дата классы все равно не хотят сериализоваться. Подскажите если у кого-то если кто-то сталкивался)

Alexandr
10.10.2018
09:09:36
а какая ошибка то?
jackson-kotlin подрублен?

Quantum Harmonizer
10.10.2018
09:10:16

Sviat
10.10.2018
09:15:54
jackson-kotlin подрублен?
com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of app.example.c.b.h (no Creators, like default construct, exist): cannot deserialize from Object value (no delegate- or property-based Creator)
подрублен
джексон лежит в вдиже файлика в ассетах, следующей структуры { "items": [ {}, {} ] }

Alexandr
10.10.2018
09:16:50

Quantum Harmonizer
10.10.2018
09:16:53