В этом посте я рассказываю о производительности нашего парсера 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 может быть очень хорошим выбором для производительности, особенно там, где требуется постоянная низкая задержка за счет сверхнизкого производства мусора.