В моем посте Построение высокопроизводительных API-интерфейсов на ходу с использованием gRPC и протокольных буферов я написал простой API-интерфейс на gRPC с протокольными буферами версии 3 в качестве проводного формата. В этом кратком посте я сравниваю производительность Protocol Buffers 3, JSON и XML как для маршалинга, так и для демаршалинга.

Вот тестовые тесты, написанные на Go:

Вот результаты тестов производительности:

Выходные данные показывают, что буферы протокола превосходят JSON и XML как в маршалинге, так и в немаршалинге. Результат показывает следующие числа:

  • Маршал для буферов протокола: 819 нс / операция
  • Неупорядочение буферов протокола: 1163 нс / операция
  • JSON Marshal: 3316 нс / оп
  • JSON Unmarshal: 7196 нс / оп
  • XML Marshal: 9248 нс / операция
  • XML Unmarshal: 30485 нс / операция

Простые тесты bechmark действительно показывают, что Protocol Buffers - отличный выбор по сравнению с JSON и XML с REST, когда вы создаете массово масштабируемые API с помощью gRPC.

Вы можете подписаться на меня в твиттере по адресу @shijucv. Я провожу обучение и консультации по языку программирования Go (Golang) и архитектурам распределенных систем в Индии.