Привет, сообщество! Мы рады объявить о выходе крупного обновления нашего JSON-парсера без кодогенерации и аллокаций — silentjson v2.0.0.
В первую очередь, огромное спасибо всем, кто поддержал проект и давал обратную связь. Без вашего участия мы бы не зашли так далеко.
Что нового в v2.0.0?
В этом релизе мы сосредоточились на предельной эффективности и специфических юзкейсах:
-
Оптимизация парсинга без AVX2. Мы серьезно прокачали скалярный fallback. Теперь даже на архитектурах без поддержки современных векторных инструкций или там, где они отключены, парсер показывает отличные результаты.
-
hft-ipc. Кто знает, тот поймет.
Вишенка на торте: мы уперлись в физику
Главная новость релиза — скорость умчалась так, что мы банально перестали догонять. Мы практически полностью исключили программные накладные расходы и теперь просто упираемся в сырое железо и пропускную способность памяти.
Это круто, да. Но нужно быть честными: экстремально большая нагрузка дает влияние и на нас. Справедливости ради стоит сказать, что в симуляции тяжелого сценария под стресс-нагрузкой скорость парсинга упала на 60%. Но даже с учетом этой просадки silentjson продолжает обгонять всех конкурентов на непреодолимую величину. Запас прочности оказался колоссальным.
Вот небольшая затравка с тестами на AMD Ryzen 9 7950X3D (парсинг 100 000 объектов):
|
Режим |
Пропускная способность |
|---|---|
|
Standard ( |
110 МБ/с |
|
Sonic (JIT) |
644 МБ/с |
|
SilentJSON (Scalar) |
810 МБ/с |
|
SilentJSON (AVX2) |
24 670 МБ/с |
(Подробности позже или на GitHub)
Не верьте нам на слово
Не забываем про наш вклад и идем проверять, не обманули ли мы вас. А то вдруг.
Обновляйтесь до актуальной версии:
go get github.com/GenshIv/silentjson@v2.0.0
Пишите свои бенчмарки в комментарии к этой статье. Кто больше!
Репозиторий проекта: github.com/GenshIv/silentjson
ссылка на оригинал статьи https://habr.com/ru/articles/1055022/