Skip to content

Оптимизация преобразования json

В этой теме ты узнаешь:

  • Как обычно производится оптимизация.

  • Как производится оптимизация на примере библиотеки json, jsoniter.

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

Оптимизация json

  1. Возьмем готовые данные с сайта Swagger.io.

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

Как видим, генератор кода использует стандартную библиотеку encoding/json.

  1. Напишем бенчмарк на функции Unmarshal, Marshal. 

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

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

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

Ознакомься с дополнительными материалами по теме: