
Konstantin
03.05.2017
15:57:04

Konstantin
03.05.2017
15:57:43

Dmitrii
03.05.2017
15:58:13

Konstantin
03.05.2017
15:58:27
Почти

Google

Konstantin
03.05.2017
15:58:40

Konstantin
03.05.2017
15:58:41
Никто не мешает писать raw
Ну и маппинг 1:1, 1:n, n:n есть

Dmitrii
03.05.2017
16:00:31
Ну такой маппинг во всех орм есть же

KlonD90
03.05.2017
16:01:05

Aleksandr
03.05.2017
16:01:13

Konstantin
03.05.2017
16:01:46
Действительно, сильно проигрывает

Aleksandr
03.05.2017
16:17:29

Кирилл
03.05.2017
16:43:17
Кстати народ, какой сервис сносно и бесплатно может перевести дохуищю текста на самых разных языках на инглишь?

Дмитрий
03.05.2017
16:43:54
https://translate.google.ru/

Кирилл
03.05.2017
16:44:05
Он платный
Я про промышленное использование. Так то да, заплатил и не паришься. Ищу именно фор фри пусть и в ущерб качеству

Google

Дмитрий
03.05.2017
16:45:34
Ну если тебе надо переводить 12 Гбит/сек, то только платно))

Кирилл
03.05.2017
16:46:29
Ну нет, в общем он сейчас используется в проекте и это самая большая статья расходов

Дмитрий
03.05.2017
16:48:47
Быстро, много, бесплатно — выберите любые два

Кирилл
03.05.2017
16:51:25
Можно медленно)

Aleksandr
03.05.2017
17:01:52
а кто-нибудь озадачивался вопросом быстрейшего парсинга JSON на NodeJs? есть ли что-то значительно быстрее JSON.parse?

ASergey
03.05.2017
17:02:31
Я полюбил Коа, кастомизируемый очень сильно и это очень нравится

Дмитрий
03.05.2017
17:02:44

Vladimir
03.05.2017
17:03:02

Aleksandr
03.05.2017
17:03:17

KlonD90
03.05.2017
17:04:44
а что упираетесь в JSON parse? Вроде один из самых быстрых парсингов такого нетипизированного формата

Alex
03.05.2017
17:07:48
а кто-нибудь озадачивался вопросом быстрейшего парсинга JSON на NodeJs? есть ли что-то значительно быстрее JSON.parse?
Смотря что именно ты имеешь в виду под парсингом.
Если string -> json в общем виде, то скорее всего JSON.parse твой выбор. Ну... может быть какая-то нативщина существует, которая будет быстрее, но интеграция падает на твои плечи.
Потоковые парсеры на ноде вообще очень странно-сложная штука.
Возможен вариант, когда ты, например реально не хочешь парсить всё, а хочешь получить данные только из некоего подмножества. В таком случае таки да, тебе нужен SAX парсер. И в определенных случаях даже плохонький SAX будет быстрее чем JSON.parse

Aleksandr
03.05.2017
17:08:00

Alex
03.05.2017
17:08:37

Aleksandr
03.05.2017
17:09:48

Alex
03.05.2017
17:10:09
Тогда и не парься
SAX/потоковый парсер на таких объемах тебе даст большой оверхед. Он вообще для другого.
А если ты напишешь более быстрый JSON.parse, то срочно публикуй в npm )

Aleksandr
03.05.2017
17:11:50
Тогда и не парься
ну на больших нагрузках это приводит к большим проблемам которые там на месте с наскока уже не решить)

Vladimir
03.05.2017
17:12:59
Это решается простой балансировкой

Aleksandr
03.05.2017
17:13:41

Alex
03.05.2017
17:14:40
Ну смотри, JSON.parse в данном случае - чистое вычисление. Т.е. в рамках ноды ты его не сможешь ни распараллелить, ни пустить хм.. в другой поток
Учитывая, что я напрочь не знаю, как устроен внутри JSON.parse, но знаю как устроены парсеры JSON в некоторых других языках, то мой опыт говорит, что едва ли ты напишешь что-то чуть более быстрое, чем JSON.parse. По крайней мере это не решит твою проблему с нагрузкой.

Google

Aleksandr
03.05.2017
17:14:42

Vladimir
03.05.2017
17:14:56
Всего приложения

Alex
03.05.2017
17:15:08
нагрузки по инстансам приложения
В общем Vladimir прав. Думаю про балансировку и scale-out

Aleksandr
03.05.2017
17:16:21
нагрузки по инстансам приложения
ну оптимизация скорости парсера - вопрос вертикального масштабирования, а инстансы и распределение - это горизонтальное. разные области

Vladimir
03.05.2017
17:16:49
Это так, но скорость парсинга не должна быть существенной для масштабирования

Alex
03.05.2017
17:16:54
Ну тут идея такая, что ты не получишь 200% ускорения на парсере

Vladimir
03.05.2017
17:17:01
Если она существенно - то это фундаментальные проблемы

Aleksandr
03.05.2017
17:17:06

Vladimir
03.05.2017
17:17:45
Никакая либа не даст тебе тот же интерфейс что JSON.parse быстрее

Alex
03.05.2017
17:18:02

Aleksandr
03.05.2017
17:18:42

Vladimir
03.05.2017
17:19:04
Потому что он сам парсинг занимает незначительную часть времени

Aleksandr
03.05.2017
17:19:20

Vladimir
03.05.2017
17:19:44
Я экспериментировал с подобным подходом
Результат - только потеря производительности

Aleksandr
03.05.2017
17:23:32
например в го есть реализации работающие с json в 10 (!) раз быстрее чем стандартная библиотека, поэтому непонятно почему стандартная бибилотека эталон? тем более глядя на нативную реализацию в ноде промисов эпичную, которая нереально плоха была до недавнего времени

Alex
03.05.2017
17:38:12

Google

Vladimir
03.05.2017
17:38:31
При этом парсер работал в параллельном потоке

Aleksandr
03.05.2017
17:39:34

Vladimir
03.05.2017
17:39:46
> c JSON.stringify

Aleksandr
03.05.2017
17:40:33
а зачем сравнивать encode и decode? это же разные задачи

Vladimir
03.05.2017
17:41:10
всмысле JSON.parse, конечно

Aleksandr
03.05.2017
17:44:40

Vladimir
03.05.2017
17:44:49
Нет
Парсер на C с JSON.parse

Admin
ERROR: S client not available

Aleksandr
03.05.2017
17:45:29

Vladimir
03.05.2017
17:45:47
Не помню уже, какой-то из очень быстрых

Ҫѐҏӗѫӑ
03.05.2017
18:51:57
> несопоставимых
> несколько КБ
?

Harry
03.05.2017
18:52:16
пасаны, в express-session указал secret, resave и saveUninitialized. все норм было. Потом подключил express-socket.io-session и в консоле начало выдавать что secret, resave и saveUninitialized не объявлены. Кто нить сталкивался?

KlonD90
03.05.2017
19:08:05
Ну и дефолтная библиотека в Js лучше чем в go

Aleksandr
03.05.2017
19:09:47

Vladimir
03.05.2017
19:10:13
Секрет просто - в Go просто плохая стандартная реализация

KlonD90
03.05.2017
19:10:29

Aleksandr
03.05.2017
19:11:22

Google

Vladimir
03.05.2017
19:12:48
О какой реализации в Go речь, для начала?

Aleksandr
03.05.2017
19:13:18

KlonD90
03.05.2017
19:13:45

Vladimir
03.05.2017
19:13:47
Сложно утверждать, что в V8 не оптимальная реализация
Никаких свидетельств в пользу этого нет

KlonD90
03.05.2017
19:14:03
Там где код заранее сгенерил для каждого типа меседжа.

Aleksandr
03.05.2017
19:15:21

Vladimir
03.05.2017
19:15:46
Ну ты сам эту историю привел, как бы
Сходу видно что этот парсер делает не то же самое, что стандартный парсер в Go
Следовательно сравнивать бессмысленно

KlonD90
03.05.2017
19:17:23
Ты не получишь выигрыш из за того что нельзя сразу алоцировать память в хипе для объекта целиком и просто писать из экстрима туда

Aleksandr
03.05.2017
19:17:32

Vladimir
03.05.2017
19:17:38
> , allocates no memory
true story

Aleksandr
03.05.2017
19:19:40

Vladimir
03.05.2017
19:20:06
Это не так

Дмитрий
03.05.2017
19:20:31
Кстати а в V8 то на чём парсинг реализован?

Vladimir
03.05.2017
19:20:33
Вот код из бенчмарка

Дмитрий
03.05.2017
19:21:10
А то многие почему то думают, что раз V8 то там и Array.map и промисы будут на крестах а не на js