#JSON #Performance
Beyond Gson — Evaluating JSON Parsers for Android & Kotlin
Какой JSON парсер самый быстрый? Задумывались ли вы об этом? Я думаю что значительная часть подписчиков канала используют GSON в качестве парсера, возможно даже и не зная этого.
Что не так с GSON? Он не поддерживает Kotlin из коробки (например nullability), который является основным языком для Android разработки.
В статье сравниваются различные парсеры и как можно мигрировать на них. Результаты сравнения по тестам производительности следующий:
1️⃣ Moshi 🏆
2️⃣ kotlinx.serialization (в процессе разработке, но уже стабильна)
3️⃣ GSON
4️⃣ Jackson
Первые два парсера смогли оторваться за счет того что не используют рефлексию
Beyond Gson — Evaluating JSON Parsers for Android & Kotlin
Какой JSON парсер самый быстрый? Задумывались ли вы об этом? Я думаю что значительная часть подписчиков канала используют GSON в качестве парсера, возможно даже и не зная этого.
Что не так с GSON? Он не поддерживает Kotlin из коробки (например nullability), который является основным языком для Android разработки.
В статье сравниваются различные парсеры и как можно мигрировать на них. Результаты сравнения по тестам производительности следующий:
1️⃣ Moshi 🏆
2️⃣ kotlinx.serialization (в процессе разработке, но уже стабильна)
3️⃣ GSON
4️⃣ Jackson
Первые два парсера смогли оторваться за счет того что не используют рефлексию
Medium
Beyond Gson — Evaluating JSON Parsers for Android & Kotlin
Background
#JSON #Multiplatform
Хотите узнать подробнее о kotlinx.serialization - рекомендую посмотреть доклад разработчика этой библиотеки Леонида Старцева из JetBrains "Дизайн kotlinx.serialization"
Хотите узнать подробнее о kotlinx.serialization - рекомендую посмотреть доклад разработчика этой библиотеки Леонида Старцева из JetBrains "Дизайн kotlinx.serialization"
YouTube
"Дизайн kotlinx.serialization" - Леонид Старцев@JetBrains
Леонид рассказал о библиотеке kotlinx.serialization: зачем она была создана, какие архитектурные решения были приняты в процессе её написания. О том, как она работает изнутри и как программисты могут ей пользоваться и расширять её.
Github - https://gith…
Github - https://gith…
#json
Custom Reactive JSON parsing
К сожалению, kotlinx serialization поддерживает парсинг JSON только из строк, что означает прежде чем начать парсить что-то, вам надо полностью считать все данные. И тут может произойти неприятное - OutOfMemoryError.
Автор статьи рассказывает как на основе своей библиотеки json.kt добавил стриминговый парсинг JSON
Custom Reactive JSON parsing
К сожалению, kotlinx serialization поддерживает парсинг JSON только из строк, что означает прежде чем начать парсить что-то, вам надо полностью считать все данные. И тут может произойти неприятное - OutOfMemoryError.
Автор статьи рассказывает как на основе своей библиотеки json.kt добавил стриминговый парсинг JSON
Forwarded from Kotlin Multiplatform Broadcast
#json
How Trello Android converted from Gson to Moshi
В Trello отказались от Gson в пользу Moshi для работы с Json т.к. Gson не понимает Kotlin и медленее. Также Moshi позволил сделать код стабильнее из-за быстрого выявления проблем с парсингом null.
Как пройти процесс миграции безопасно вы найдёте статье
How Trello Android converted from Gson to Moshi
В Trello отказались от Gson в пользу Moshi для работы с Json т.к. Gson не понимает Kotlin и медленее. Также Moshi позволил сделать код стабильнее из-за быстрого выявления проблем с парсингом null.
Как пройти процесс миграции безопасно вы найдёте статье
История(12м) как в Альфа-Банке сокращали размер JSON файла, который передается на устройство для работы SDUI. Решением стала шаблонизация для отказа от одинаковых блоков UI с разными данными
#оптимизация #json
#оптимизация #json
👎19👍8🤯3