Статьи

Какая библиотека лучше всего подходит для использования JSON в приложениях IoT?

В этом посте я рассказываю о производительности нашего парсера JSON. Учитывая выбор, я предлагаю YAML по множеству причин, однако, если вам нужно использовать JSON, как сравнивается производительность?

Сообщение

Сообщение простое и содержит несколько типов данных.

"price":1234,"longInt":1234567890,"smallInt":123,"flag":true,
"text":"Hello World!","side":"Sell" 

Фактическое сообщение не имеет новой строки

Производительность

Это время, чтобы написать, а затем прочитать сообщение.

Эти сроки указаны в микросекундах (0,001 миллисекунды)

Формат провода Б 99,9% плитки 99,99% плитки 99,999% плитки наихудший
JSONWire 100 * 3,11 5,56 10,6 36,9
Джексон 100 4,95 8,3 +1400 1500
Джексон + C-байты 100 * 2,87 10,1 1300 +1400
BSON 96 19,8 1430  +1400 1600
BSON + C-байты 96 * 7,47 15,1 +1400 11600
BOON Json 100 20,7 32,5 11 000 69000

«C-байты» означает использование байтов хроники для обеспечения переработанного буфера.

«*» означает, что эти данные были записаны в / считаны из прямой памяти и не требуют дополнительного копирования для использования с NIO.

Код такой же, как в этом посте и этом  посте , единственное отличие заключается в использовании JSONWire.

Вывод

JSONWire может быть очень хорошим выбором для производительности, особенно там, где требуется постоянная низкая задержка за счет сверхнизкого производства мусора.