Оптимизация преобразования json
В этой теме ты узнаешь:
-
Как обычно производится оптимизация.
-
Как производится оптимизация на примере библиотеки json, jsoniter.
Обычно оптимизация нагруженных частей приложения в проектах осуществляется подбором более эффективных библиотек с наименьшим количеством аллокаций и временем выполнения. Очень частой задачей в API-приложениях является сериализация и десериализация json. Давай подробнее рассмотрим оптимизацию этой части приложения.
Оптимизация json
- Возьмем готовые данные с сайта Swagger.io.
- Сгенерируем код автоматически, воспользовавшись сервисом quicktype:.
Как видим, генератор кода использует стандартную библиотеку encoding/json.
- Напишем бенчмарк на функции Unmarshal, Marshal.
- Попробуем оптимизировать функции Unmarshal, Marshal, используя библиотеку Github, немного модифицировав наши предыдущие функции.
- Напишем бенчмарк и сравним.
Как мы видим, версия с jsoniter практически в три раза быстре: Jsoniter потребляет 133295 ns/op против 334458 ns/op в стандартной библиотеке.
Ознакомься с дополнительными материалами по теме: