#javascript #node.js #serialization #compression #brotli
#javascript #node.js #сериализация #сжатие #бротли
Вопрос:
Какой самый быстрый способ сериализации и сжатия хэш-карты (объекта) javascript в NodeJS 12 ? Я пытаюсь найти самую быструю комбинацию методов сериализации и сжатия для преобразования объекта javascript в двоичные данные.
Количество возможных комбинаций составляет более 100, моя цель — предварительное исследование, чтобы выбрать несколько лучших вариантов для окончательного тестирования.
Ввод: объект, имеющий произвольные ключи, поэтому некоторые действительно быстрые методы сериализации, такие как AVSC, не могут быть использованы. Предположим, что объект имеет 30 пар ключ-значение, пример:
{
"key-one": 2,
"key:two-random-text": "English short text, not binary data.",
... 28 more keys
}
Нет необходимости поддерживать сериализацию даты, регулярных выражений и т. Д.
Сериализация могут учитываться только форматы сериализации без схемы, такие как JSON или BSON. V8.serialize — интересный вариант, вероятно, он быстрый, потому что он родной. Пакет Compress-brotli по какой-то причине добавил его поддержку, но не предоставил контрольный показатель или выделил его как рекомендуемый вариант.
Сжатие, вероятно, следует рассматривать только самые быстрые методы. Не уверен, что brotli — идеальный выбор, потому что, согласно wiki, он силен в сжатии JS, CSS и HTML, потому что ожидает «ключевые слова» во входных данных. Предпочтительна встроенная поддержка nodejs.
Я нашел полезное исследование для аналогичного варианта использования (я планирую сжимать с помощью lambda и сохранять в S3), но их данные исходят из JSON, в отличие от моего случая.
Комментарии:
1. просто gzip json, он родной
Ответ №1:
Я бы рекомендовал lz4 для быстрого сжатия.
Комментарии:
1. Спасибо, что указали, он определенно рассчитан на скорость catchchallenger.first-world.info/wiki /…