@nodejs_ru

Страница 743 из 2748
Konstantin
03.05.2017
15:57:43
Dmitrii
03.05.2017
15:58:13
Objection.Js
Это же orm?

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

Google
Konstantin
03.05.2017
15:58:40
Кажется, он значительно медленнее и так не реактивного Express. Нет? Или вам скорость не решает?
Ну во-первых, для меня пока скорость не критична, а во-вторых, хотелось бы посмотреть источник такой информации :)

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
он еще и в nginx отлично работает, особенно любят такой подход китайские парни
ну вот есть прекрасный luajit. вот тарантул если нужна скорость то логику в тарантуле и впереди на go какие-нибудь штуки для трафика

Aleksandr
03.05.2017
16:01:13
Ну во-первых, для меня пока скорость не критична, а во-вторых, хотелось бы посмотреть источник такой информации :)
ну я смотрел несколько бенчмарков, верить бенчмаркам сложно, автор всегда побеждает со своим модулем.

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

Aleksandr
03.05.2017
16:17:29
ну вот есть прекрасный luajit. вот тарантул если нужна скорость то логику в тарантуле и впереди на go какие-нибудь штуки для трафика
ну я так понимаю смысл основной luajt в таких местах это расширение логики работы "не отходя от кассы", поэтому оно вам либо нужно, либо не нужно. никто же не навязывает такой подход.

Кирилл
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
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
а что упираетесь в JSON parse? Вроде один из самых быстрых парсингов такого нетипизированного формата
не то чтобы упираюсь прям сейчас, но потенциально это адский ботлнек для критичных ко времени операций.

Aleksandr
03.05.2017
17:09:48
а чего парсите-то?
JSON в несколько КБ размером

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
SAX/потоковый парсер на таких объемах тебе даст большой оверхед. Он вообще для другого. А если ты напишешь более быстрый JSON.parse, то срочно публикуй в npm )
ну зачем я? есть десятки сишных и кто-то даже говорит что быстрее протобуфа умеет, и к ним даже есть обвязки к ноде

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
Если она существенно - то это фундаментальные проблемы

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

Alex
03.05.2017
17:18:02
да, тут возможный вариант использовать стороннюю либу с обвязкой только
не забывай про всякие радости в духе копировние данных, переключение контекстов и всё это добро. Потому что данные, которые ты собрал в C еще надо в виртуальную машину подпихнуть

Aleksandr
03.05.2017
17:18:42
Никакая либа не даст тебе тот же интерфейс что JSON.parse быстрее
почему? если сам парсинг реализован намного быстрее в сторонней либе, то почему не даст?

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

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

Результат - только потеря производительности

Aleksandr
03.05.2017
17:23:32
Результат - только потеря производительности
а можно конкретнее? что с чем сравнивали?

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

не забывай про всякие радости в духе копировние данных, переключение контекстов и всё это добро. Потому что данные, которые ты собрал в C еще надо в виртуальную машину подпихнуть
тут на самом деле все не так страшно, поток один и переключений контекста не будет, основная задача это аллоцировать данные из v8 в js-объект

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
всмысле JSON.parse, конечно
вы сравнивали JSON.stringify и JSON.parse друг с другом?

Vladimir
03.05.2017
17:44:49
Нет

Парсер на C с JSON.parse

Admin
ERROR: S client not available

Aleksandr
03.05.2017
17:45:29
Парсер на C с JSON.parse
а каким? их десятки причем по скорости несопоставимых.

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 не объявлены. Кто нить сталкивался?

Aleksandr
03.05.2017
19:09:47
Но она как бы это сказать делает за счет типизации это.
ну вот нет, стандартная либа и библиотека сторонняя написаны на одном языке у них равные возможности. вопрос в алгоритме.

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

Aleksandr
03.05.2017
19:11:22
Ты читаешь что я пишу?
да, кто там выигрывает за счет типизации?

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

Aleksandr
03.05.2017
19:13:18
Секрет просто - в Go просто плохая стандартная реализация
не оптимальная, ровно как и в V8, но во втором случае что-то сделать сильно сложнее чем в первом

KlonD90
03.05.2017
19:13:45
Секрет просто - в Go просто плохая стандартная реализация
Ну и это тоже. Но там выигрыш за счет того что они знают схему того что придет и все готово заранее. В принципе в Js вряд ли будет особый прирост поэтому поводу так как и приведение не нужно

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

Никаких свидетельств в пользу этого нет

KlonD90
03.05.2017
19:14:03
О какой реализации в Go речь, для начала?
Н у наверняка чувак про мыловскую

Там где код заранее сгенерил для каждого типа меседжа.

Aleksandr
03.05.2017
19:15:21
О какой реализации в Go речь, для начала?
стандартная против jsonparser, но это другой язык и другая история

Vladimir
03.05.2017
19:15:46
Ну ты сам эту историю привел, как бы

Сходу видно что этот парсер делает не то же самое, что стандартный парсер в Go

Следовательно сравнивать бессмысленно

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

Aleksandr
03.05.2017
19:17:32
Никаких свидетельств в пользу этого нет
https://github.com/miloyip/nativejson-benchmark там есть и V8

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

true story

https://github.com/miloyip/nativejson-benchmark там есть и V8
v8 против другого парсера, который выдает js-объекты?

Aleksandr
03.05.2017
19:19:40
v8 против другого парсера, который выдает js-объекты?
реализация парсинга на с/c++ там сравнивается, конвертация в js-объект задача уже другая

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

Страница 743 из 2748