FlatJSON
От: niXman Ниоткуда https://github.com/niXman
Дата: 16.12.19 17:14
Оценка: 21 (3)
The header-only implementation of very fast zero allocation and zero copy JSON parser:
https://github.com/niXman/flatjson

надоели тормозные поделки вроде json by nlohmann, etc...

пока что это только парсер, но скоро станет и генератором.

проходит все conformance тесты.

работаю над добавлением в https://github.com/miloyip/nativejson-benchmark
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)
Отредактировано 16.12.2019 17:15 niXman . Предыдущая версия .
Re: FlatJSON
От: L.K. Марс  
Дата: 16.12.19 17:31
Оценка:
А чем этот парсер лучше тысяч существующих? Цифры какие-нибудь есть? Ну, скажем, 100-меговый файл распарсивает за столько-то секунд.
Re[2]: FlatJSON
От: niXman Ниоткуда https://github.com/niXman
Дата: 16.12.19 17:47
Оценка:
Здравствуйте, L.K., Вы писали:

LK>А чем этот парсер лучше тысяч существующих?

ну...насколько я знаю, он быстрей тысяч существующих

LK>Ну, скажем, 100-меговый файл распарсивает за столько-то секунд.

этот(52 мб) JSON за ~300 мс
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)
Re[3]: FlatJSON
От: Danchik Украина  
Дата: 16.01.20 22:33
Оценка:
Здравствуйте, niXman, Вы писали:

X>Здравствуйте, L.K., Вы писали:


LK>>А чем этот парсер лучше тысяч существующих?

X>ну...насколько я знаю, он быстрей тысяч существующих

LK>>Ну, скажем, 100-меговый файл распарсивает за столько-то секунд.

X>этот(52 мб) JSON за ~300 мс

Лучше чем этот? Я в этих zero cost парсерах не очень разбираюсь, но такое на слабых камнях запускали.
https://github.com/zserge/jsmn
Re: FlatJSON
От: flаt  
Дата: 17.01.20 09:11
Оценка:
Здравствуйте, niXman, Вы писали:

Зачем в master класть тестовые данные на 50+ мб?
Re[4]: FlatJSON
От: niXman Ниоткуда https://github.com/niXman
Дата: 17.01.20 10:20
Оценка:
Здравствуйте, Danchik, Вы писали:

D>Лучше чем этот? Я в этих zero cost парсерах не очень разбираюсь, но такое на слабых камнях запускали.

D>https://github.com/zserge/jsmn

ну не знаю кто кого быстрее окажется... нужно тестить.
но удобней — однозначно)
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)
Re[2]: FlatJSON
От: niXman Ниоткуда https://github.com/niXman
Дата: 17.01.20 10:20
Оценка:
Здравствуйте, flаt, Вы писали:

F>Зачем в master класть тестовые данные на 50+ мб?


а в чем проблема?
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)
Re[3]: FlatJSON
От: flаt  
Дата: 17.01.20 10:25
Оценка: 5 (1)
Здравствуйте, niXman, Вы писали:


X>а в чем проблема?


В тестовых данных большого размера в основной ветке. Захочешь форкнуть (для PR или для включения сией библиотеки в проект) и приходится скачивать всё подряд. Да и неэстетично, в конце концов.
Re[4]: FlatJSON
От: niXman Ниоткуда https://github.com/niXman
Дата: 17.01.20 10:43
Оценка:
Здравствуйте, flаt, Вы писали:

F>В тестовых данных большого размера в основной ветке. Захочешь форкнуть (для PR или для включения сией библиотеки в проект) и приходится скачивать всё подряд. Да и неэстетично, в конце концов.


никогда не задумывался об этом...
а как в таких случаях хранят тестовые данные?
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)
Re[2]: FlatJSON
От: ltc  
Дата: 17.01.20 10:52
Оценка:
Здравствуйте, flаt, Вы писали:

F>Зачем в master класть тестовые данные на 50+ мб?


А какая разница, в какой они бранче?
Re[5]: FlatJSON
От: ltc  
Дата: 17.01.20 10:58
Оценка:
Здравствуйте, niXman, Вы писали:

X>никогда не задумывался об этом...

X>а как в таких случаях хранят тестовые данные?

Github LFS?
Re[3]: FlatJSON
От: flаt  
Дата: 17.01.20 11:18
Оценка:
Здравствуйте, ltc, Вы писали:


ltc>А какая разница, в какой они бранче?


Справедливое замечание для обычного git clone, в принципе. Но репозитории библиотек я клонирую с --branch-only (с --depth 1, если история не интересна).
Но даже для обычного клонирования — другие ветки будут хотя бы нераспакованы и не захламляют каталоги зря.
Re[6]: FlatJSON
От: flаt  
Дата: 17.01.20 11:19
Оценка:
Здравствуйте, ltc, Вы писали:


ltc>Github LFS?


Мне кажется, для 50 мб это overkill.
Re[5]: FlatJSON
От: flаt  
Дата: 17.01.20 11:21
Оценка:
Здравствуйте, niXman, Вы писали:


X>никогда не задумывался об этом...

X>а как в таких случаях хранят тестовые данные?

Отдельная ветка, а лучше — отдельный репозиторий для бенчмарков и тестовых данных. В конце концов, пользователю библиотеки нужен лишь заголовочный файл. Да, если озаботиться CI и/или релизами, то можно его выкладывать отдельно — но, опять же, стоит подумать и о тех, кто форкает или клонирует репозиторий.
Отредактировано 17.01.2020 11:23 flаt . Предыдущая версия .
Re[2]: FlatJSON
От: Mihas  
Дата: 17.01.20 11:36
Оценка: +1 :))) :)
> Flat JSON
> От: flаt
> Зачем в master класть тестовые данные на 50+ мб?

Код отстаивает свои права?
Re[5]: FlatJSON
От: Igore Россия  
Дата: 17.01.20 13:24
Оценка:
Здравствуйте, niXman, Вы писали:

F>>В тестовых данных большого размера в основной ветке. Захочешь форкнуть (для PR или для включения сией библиотеки в проект) и приходится скачивать всё подряд. Да и неэстетично, в конце концов.


X>никогда не задумывался об этом...

X>а как в таких случаях хранят тестовые данные?
А сгенерировать?
Re[5]: FlatJSON
От: Danchik Украина  
Дата: 17.01.20 15:58
Оценка:
Здравствуйте, niXman, Вы писали:

X>Здравствуйте, Danchik, Вы писали:


D>>Лучше чем этот? Я в этих zero cost парсерах не очень разбираюсь, но такое на слабых камнях запускали.

D>>https://github.com/zserge/jsmn

X>ну не знаю кто кого быстрее окажется... нужно тестить.

X>но удобней — однозначно)

Да тут уже не стояло требование по удобно. Пямяти в обрез, а парсить надо.
Re[6]: FlatJSON
От: niXman Ниоткуда https://github.com/niXman
Дата: 17.01.20 16:23
Оценка:
Здравствуйте, Danchik, Вы писали:

D>Да тут уже не стояло требование по удобно. Пямяти в обрез, а парсить надо.


они оба могут использовать стек, и оба не выполняют дополнительных аллокаций.
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)
Re: FlatJSON
От: niXman Ниоткуда https://github.com/niXman
Дата: 21.06.20 10:44
Оценка:
произвел всякие фиксы, изменения, исправления...

теперь оно не zero allocation, but just one allocation =)
пачка бумаги А4 стОит 2000 р, в ней 500 листов. получается, лист обычной бумаги стОит дороже имперского рубля =)
Re[2]: FlatJSON
От: SomeOne_TT  
Дата: 21.06.20 15:58
Оценка:
Здравствуйте, niXman, Вы писали:

X>произвел всякие фиксы, изменения, исправления...


X>теперь оно не zero allocation, but just one allocation =)


А что с бенчмарками? Без них никто и не взглянет.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.