LINUX.ORG.RU

simdjson 4.0.0 и 4.0.1

 , , , ,


1

2

12 и 13 сентября состоялись выпуски 4.0.0 и 4.0.1 высокопроизводительной, SIMD-оптимизированной, библиотеки simdjson.

Значительные изменения:

  • Добавлен API builder для сериализации структур данных в строку JSON:
std::vector<std::vector<double>> c = {{1.0, 2.0}, {3.0, 4.0}};
std::string json = simdjson::to_json(c);
  • Добавлена экспериментальная поддержка статической рефлексии стандарта C++26 (подробнее о компиляторах: p2996/README.md), позволяющая производить сериализацию и десериализацию данных пользовательских типов:
struct Car {
    std::string make;
    std::string model;
    int64_t year;
    std::vector<double> tire_pressure;
};
void f() {
    Car c = {"Toyota", "Corolla", 2017, {30.0, 30.2, 30.513, 30.79}};
    std::string json = simdjson::to_json(c);
}

или

struct Car {
    std::string make;
    std::string model;
    int year;
    std::vector<float> tire_pressure;
};
std::string json = R"( { \"make\": \"Toyota\", \"model\": \"Camry\", \"year\": 2018,
       \"tire_pressure\": [ 40.1, 39.9 ] } )";
simdjson::ondemand::parser parser;
simdjson::ondemand::document doc = parser.iterate(simdjson::pad(json));
Car c = doc.get<Car>();
  • На 10-70% увеличена скорость сериализации.
  • Другие оптимизации и исправления ошибок.
  • В версии 4.0.1 исправлена совместимость со старыми версиями CMake.

>>> Подробности на GitHub

★★★★★

Проверено: hobbit ()
Ответ на: комментарий от ann_lortemp2

Старое, от конкурента: https://github.com/miloyip/nativejson-benchmark. Я собирать не пробовал.

Но лучше бы добавить в https://github.com/stephenberry/json_performance.

dataman ★★★★★
() автор топика
Последнее исправление: dataman (всего исправлений: 1)
Ответ на: комментарий от splinter

О какой железке речь? Вроде заявлена работа на любом 64-битном процессоре.

Softwayer ★★
()
Последнее исправление: Softwayer (всего исправлений: 1)

Выбрать медленный текстовый формат и тратить силы на сложную оптимизацию, вместо выбрать быстрый бинарный формат

sena ★★★
()
Последнее исправление: sena (всего исправлений: 1)
Ответ на: комментарий от sena

быстрый бинарный формат

А дампы Википедии в нём выкладывают?

dataman ★★★★★
() автор топика
Ответ на: комментарий от question4

Каким бинарным форматом заменить JSON?

  • protobuf
  • asn
  • tlv

И прям до жопы всяких местячковых «у нас новый вариант сериализации».

bdrbt
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.