@kotlin_lang

Страница 590 из 982
Dmitry
17.03.2018
16:40:49
Я просто много на конференциях вижу обсуждения перфоманса сериализаторов, пиар моши и т.п. Хотя мне кажется, что если у вас сериализация как-то сопоставима с сетевыми задержками - надо решать проблемы перфоманса переходом на бинарные протоколы, а не тянуть осла за яйца.

Dmitry
17.03.2018
16:43:04
курлом неудобно, лучше взять какой-нибудь клиент, в который можно сунуть proto-файл.
Кстати, что посоветуешь, чтобы смотреть обьекты с большой вложенностью по-человечески?

Google
Mikhail
17.03.2018
16:45:24
Тимур
17.03.2018
16:45:42
Можно ли унаследоваться от generic параметра? class Proxy<T>: T { } Оно ругается, что only classes and interfaces may serve as supertypes, но может его как то можно уговорить.

Quantum Harmonizer
17.03.2018
16:46:30
так какие у тебя юзкейсы, объемы данных?
100-200 килобайт, старт приложения, ничтожный проц, мало памяти, классы ещё в интерпретаторе

Mikhail
17.03.2018
16:49:40
Ну я сомневаюсь, что стриминг быстрее

Но как это бенчмаркать - не понятно

Quantum Harmonizer
17.03.2018
16:50:12
Ну я сомневаюсь, что стриминг быстрее
Эмм, любой метод парсинга базируется на стриминге

Mikhail
17.03.2018
16:50:39
Может мы про разный стриминг говорим

Sergey
17.03.2018
16:51:22
нет, см. type erasure
интересно в Kotlin Native тоже type erasure?

Mikhail
17.03.2018
16:51:30
Я про тот, что данные приходят частями, либа кидает эвенты на начало объекта, конец, на каждый филд

Quantum Harmonizer
17.03.2018
16:51:57
ненавистник синглтонов в треде :) https://youtrack.jetbrains.com/issue/KT-23304

Google
Mikhail
17.03.2018
16:53:42
Ну вот когда данные влезают в память, дешевле сразу все прочитать и не заморачиваться с эвентами

Igor
17.03.2018
16:55:27
Quantum Harmonizer
17.03.2018
16:55:48
А чем тебе AtomicReference не угодил?
Просто как пример изменяемого оъекта

Даниил
17.03.2018
16:57:34
ненавистник синглтонов в треде :) https://youtrack.jetbrains.com/issue/KT-23304
я не думаю что котлин должен на такое варнинги кидать

Mikhail
17.03.2018
16:57:35
Я не об этом вообще. Данные в памяти.
Ну вот смотри бенчмарки, у меня без стриминга сделано

Даниил
17.03.2018
16:58:07
Quantum Harmonizer
17.03.2018
16:58:14
Даниил
17.03.2018
16:58:36
ок, тогда согласен с тобой

Quantum Harmonizer
17.03.2018
17:00:40
Лучше бы, конечно, компилятор отказывался это компилировать, но уже поздно.

Mikhail
17.03.2018
17:12:25
Я не об этом вообще. Данные в памяти.
есть еще вариант, когда нужны не все данные, boon парсит в мапу, которая знает из какого места в исходных данных вытащить значение, и создает отдельные значения только по требованию

парсит быстро, но если начинать оттуда что-то читать, то производительно резко просидает

Quantum Harmonizer
17.03.2018
17:51:55


DY
17.03.2018
19:09:31
? ошибок же нет, в каком плане "не поддерживается"?

Quantum Harmonizer
17.03.2018
19:09:58
Нельзя написать val ((a), (b)) = ...

DY
17.03.2018
19:10:16
а, понял)

sne18
17.03.2018
19:20:03
Всем привет! Создана московская группа Kotlin, присоединяйтесь! Вскоре сделаем оффлайновый митап.

https://www.meetup.com/Kotlin-Moscow

Mikhail
17.03.2018
19:35:21
Скорость парсинга это, конечно круто, но меня протобуф подкупает больше всего тем, что proto-файл - хорошая спека, а в JSON даже комментарии не воткнешь

Ну и автогенерация pojo

Google
Sergey
17.03.2018
20:09:16
@relizarov а планируется ли добавить возможность получения контекста корутины вне билдера? сейчас это делать можно, но довольно костыльно

Roman
17.03.2018
20:12:21
Уже есть в 1.2.30.

Sergey
17.03.2018
20:13:45
и правда, круто, спасибо)

Mikhail
17.03.2018
20:38:47
на графики на днях добавлю

может ночью запущу бенчмарк всего сначала

он часа 4 длится

непонятно что kotlinx.serialization делает в компайлтайме, но это никак не помогает, оно медленнее джавовых рантайм аналогов на порядок

Leonid
17.03.2018
20:46:54
Пока что это technology preview, перфоманс будет чуть позже шлифоваться Но рефлексии там действительно нет, что позволяет все на Js и Native запускать

Sergey
17.03.2018
20:48:49
пс кто не в курсе @sandwwraith это главный контрибьютор kotlinx.serialization :)

Наиль
17.03.2018
20:54:51
а у kotlin/native есть инструменты для работы с websocket?

Sergey
17.03.2018
20:55:52
В планах сделать отдельную от ktor.io библиотеку с блекджеком и асинхронными сокетами.

Sergey
17.03.2018
20:55:52
kotlinx.io Туда постепенно переедут и асинхронные сокеты

Quantum Harmonizer
17.03.2018
20:56:09
Хмм, странно, что прям на порядок. Надо перепроверить)

Mikhail
17.03.2018
20:57:29
ну не на всех тестах, но все равно сильно медленнее

Наиль
17.03.2018
21:09:11
kotlinx.serialization позволяет мапить json(и не только) в классы. А как можно работать в kotlin/native c json в более динамической манере не мапя его в класс. например как в библиотеке klaxon c использованием LOW LEVEL API https://github.com/cbeust/klaxon#low-level-api. ?

Mikhail
17.03.2018
21:12:25
Ну хорошо, если этому есть какое-либо применение

Тимур
17.03.2018
21:14:34
а когда планируете kotlinx.serializer добавить?
А какой сейчас статус у kotlinx.serialization? я несколько раз перечитал страничку на гитхабе, то так и не понял, можно пользоваться или нет по описанию скорее создается впечатление, что все готово

Sergey
17.03.2018
21:14:58
>Пока что это technology preview, перфоманс будет чуть позже шлифоваться

в слаке часто вижу народ уже активно у себя юзают

Google
Sergey
17.03.2018
21:15:42
пока еще 0.4.2 версия, релиза не было

проекту полгода

Mikhail
17.03.2018
21:16:08
8 месяцев

т.е. все что версии 0.х не стоит серьезно рассматривать?

Тимур
17.03.2018
21:17:46
по версии непонятно у корутин вон версия 0.22.5 но при этом в докладах прямо говорится: берите и смело пользуйтесь

Admin
ERROR: S client not available

Тимур
17.03.2018
21:22:31
вообще это по хорошему надо явно на гитхабе писать, в каком оно состоянии и можно ли это использовать

Sergey
17.03.2018
21:24:01
вместе с 1.3

кафка вон тоже без стабильного релиза сколько жила

Тимур
17.03.2018
21:28:44
тем не менее я их уже в продакшен прикрутил, потому что разработчики сказали что все готово ) даже несмотря на внушающий ужас флажок экспериментального статуса надо же как то понимать, можно брать или нет выяснять это опытным путем, набивая шишки, как то не хочется

Sergey
17.03.2018
21:30:10
ну так понимаю это +- финальная версия апи, а вот внутренности будут еще меняться чтобы перформанс был получше, код почище и все такое

а то я видел внутри закомменченные println :)

а вообще у @sandwwraith лучше поспрашивай

Leonid
17.03.2018
21:36:45
ну так понимаю это +- финальная версия апи, а вот внутренности будут еще меняться чтобы перформанс был получше, код почище и все такое
Апи тоже может поменяться) Но вообще то что сейчас есть работает, не падает внезапно и можно использовать в мультиплатформе Шлифовать ещё нужно, конечно

а то я видел внутри закомменченные println :)
А где это было, кст?) видимо между глаз попало...

Sergey
17.03.2018
21:38:08
https://github.com/Kotlin/kotlinx.serialization/blob/master/runtime/common/src/main/kotlin/kotlinx/serialization/json/JSON.kt#L377

stas
17.03.2018
21:43:03
не подскажите где можно почитать про создание вер приложения на ktor?

Leonid
17.03.2018
21:43:44
Глянь kotlin-fullstack-sample или quickstart в документации ktor

Google
Mikhail
17.03.2018
23:06:06
я тут klaxon еще погонял, он что-то вообще не очень

https://pastebin.com/YUErFA29

Quantum Harmonizer
18.03.2018
06:46:34
А какую либу юзаешь?
Jsoniter, выпилив из неё всё лишнее.

Konstantin
18.03.2018
08:17:52
А кто-нибудь может подсказать, как с gradle забандлить все в один файл в kotlin js?

Ivan
18.03.2018
08:47:33
Лучше. У JSON нет ни одного адекватного плюса по сравнению с ними. Но там, кто спользует ноду или пхп, этого не понять.
Вообще передать через байты структуру данных, особенно если развесистую, это вообще ни разу нетривиальная задача. А протобаф он достаточно медленный всё-равно

Плюс там же кодогенерация? Это значит удаление поля из середины ломает все приёмщики

Alexey
18.03.2018
09:00:18
Лучше. У JSON нет ни одного адекватного плюса по сравнению с ними. Но там, кто спользует ноду или пхп, этого не понять.
Ох лол, если у тебя есть файлик в 100 мб. То там наверное лежат какие то относительно важные данные. И возможность попарсить их глазами зачастую очень важна

Достаточно адекватный плюс?

Если места жалко, то json просто ахрененно зипуется

Ivan
18.03.2018
09:02:48
А, да, у меня на работе сейчас 4 разных бинарных формата, я вам скажу отладка всёго этого - то ещё удовольствие

Один порядок байт чего стоит

А главное, все бинарные сериализаторы - как один говно, есть единственный лучик здравого смысла - это one-nio, но он не особо популярен, плюс java-only =(

Ivan
18.03.2018
09:06:59
Вовсе не значит.
С чего бы это? Вот код, который по смещению 42 ожидает инт, вы этот инт удаляете, за ним идёт строка. Получается этот код откусит от строки 4 байта

Страница 590 из 982