Оптимизация преобразования json
В этой теме ты узнаешь:
-
Как обычно производится оптимизация.
-
Как производится оптимизация на примере библиотеки json, jsoniter.
Обычно оптимизация нагруженных частей приложения в проектах осуществляется подбором более эффективных библиотек с наименьшим количеством аллокаций и временем выполнения. Очень частой задачей в API-приложениях является сериализация и десериализация json. Давай подробнее рассмотрим оптимизацию этой части приложения.
Оптимизация json
- Возьмем готовые данные с сайта Swagger.io.

- Сгенерируем код автоматически, воспользовавшись сервисом quicktype:.

Как видим, генератор кода использует стандартную библиотеку encoding/json.
- Напишем бенчмарк на функции Unmarshal, Marshal.

- Попробуем оптимизировать функции Unmarshal, Marshal, используя библиотеку Github, немного модифицировав наши предыдущие функции.

- Напишем бенчмарк и сравним.

Как мы видим, версия с jsoniter практически в три раза быстре: Jsoniter потребляет 133295 ns/op против 334458 ns/op в стандартной библиотеке.
Ознакомься с дополнительными материалами по теме: