@nodejs_ru

Страница 525 из 2748
Vladimir
24.01.2017
13:54:00
естественно

как и в любом языке

abc
24.01.2017
13:54:48
в общем как всегда все скатывается к тому, что каждый хвалит свой огород. а хорошо бы знать ограничения языка / платформы, где ее стоит применять а где нет.

Vladimir
24.01.2017
13:55:05
Так я вроде и не звалю ничего

Google
Vladimir
24.01.2017
13:55:24
Я лишь про то что js ничем не хуже питона, руби и прочих

Erlang специфичен в этом плане, на язык общего назначения не тянет

Vladimir
24.01.2017
14:05:24
Сергей
24.01.2017
14:05:52
catch унарная
по статейке глядел

Vladimir
24.01.2017
14:06:24
по статейке глядел
если промисы A+, то не гляди ту статейку больше

Сергей
24.01.2017
14:06:56
я было усомнился в своих знаниях...

Roman
24.01.2017
14:17:39
тем более что речь об "утечке" fd, а не памяти
а что, текущие fd - это не больно?

Vladimir
24.01.2017
14:18:11
Он мешает выполнять код параллельно

Точно также как и event loop

> @pragus а что, текущие fd - это не больно? больно, но это на совести юзера в целом

Roman
24.01.2017
14:18:40
пачка процессов по числу cpu и механизмы ipc

Google
Vladimir
24.01.2017
14:19:31
ок, он мешает выполнять код параллельно в рамках одного процесса

> @pragus пачка процессов по числу cpu и механизмы ipc да, точно так же как с event loop

Я и говорю - в целом те же ограничения

Roman
24.01.2017
14:20:16
> @pragus пачка процессов по числу cpu и механизмы ipc да, точно так же как с event loop
event loop не означает что есть какие-то сложности с параллельностью в рамках одного процесса.

Vladimir
24.01.2017
14:21:09
да, однопоточность означает

Vladimir
24.01.2017
14:21:37
что golang?

Aleh
24.01.2017
14:22:00
там ж нет event loop

Roman
24.01.2017
14:22:13
Vladimir
24.01.2017
14:22:25
само собой

Roman
24.01.2017
14:23:07
на линуксе там тот же самый epoll, который опрашивает fd

Vladimir
24.01.2017
14:23:29
epoll != event loop

Roman
24.01.2017
14:23:31
и то же самое переключение на кусок кода, который ожидает io из fd

abc
24.01.2017
14:23:39
NodeJs only has one main thread for user code, but Golang can have more than one threads for user code, so Strongloop in Nodejs will block any other code logic and Golang will not.

Roman
24.01.2017
14:25:23
NodeJs only has one main thread for user code, but Golang can have more than one threads for user code, so Strongloop in Nodejs will block any other code logic and Golang will not.
строго говоря, можно вляпаться и заблокироваться. только надо пул тредов, на который всё это шедулится сжать до 1 потока выставив GOMAXPROCS=1

abc
24.01.2017
14:26:09
да но в 2017 найти машину только с 1 CPU core это подвиг )

Roman
24.01.2017
14:26:30
да но в 2017 найти машину только с 1 CPU core это подвиг )
есть всякие виртуалки и вот это всё )

abc
24.01.2017
14:26:38
только зачем ?

в общем если в вашем коде мало I/O то по факту в ноде он будет весь выполняться последовательно (читай с блоками)

Google
Aleh
24.01.2017
14:28:13
breaking news

Vladimir
24.01.2017
14:28:20
как и в руби, питоне, etc

abc
24.01.2017
14:28:46
для кого-то да. уже который раз встречаю людей для которых async io == multi threads

Roman
24.01.2017
14:31:07
как и в руби, питоне, etc
можно родить пачку процессов )

Aleh
24.01.2017
14:32:13
для кого-то да. уже который раз встречаю людей для которых async io == multi threads
io работает в других тредах, а в главном пользовательском максимально утилизируется время процессора. Все прсото

Nikita
24.01.2017
14:32:19
Всмысле, для кого-то? для всех
вот это не понял. объяснишь?

Dmitry
24.01.2017
14:32:30
Ребят, было ли у вас такое, что нужно сделать запросы к api без авторизации? Как вы это реализовали?

Aleh
24.01.2017
14:32:47
сокеты?
продолжи мысль пожалуйста

Dmitry
24.01.2017
14:32:52
Просто думаю как лучше сделать с точки зрения и безопасности и правильности

Vladimir
24.01.2017
14:32:53
вот это не понял. объяснишь?
код в питоне и рубе одновременно может выполнятся только в одном потоке

Roman
24.01.2017
14:33:25
продолжи мысль пожалуйста
я правильно понял тезис, что как только мы хотим сделать read из сокета, то мы сгружаем это в пул тредов?

Vladimir
24.01.2017
14:34:19
ничего не мешает. Я лишь говорю что это примерно то же самое, как однопоточность + event loop

Roman
24.01.2017
14:35:13
ничего не мешает. Я лишь говорю что это примерно то же самое, как однопоточность + event loop
строго говоря, для всяких сетевых серверов как раз лучше модель "по процессу-мультиплексору по числу cpu"

Google
Mike
24.01.2017
14:36:18
что мешает запустить несколько процессов?
тогда появляется проблема синхронизации потоков.

Roman
24.01.2017
14:36:44
Mike
24.01.2017
14:36:49
процессов

Roman
24.01.2017
14:37:16
а в чем проблема?

Mike
24.01.2017
14:38:09
предположим у тебя массив n ^ 100, в каждом элементе хранится число, надо перебрать и отсортировать все числа по возрастанию, твои действия в разрезе "запустил много процессов"?

Roman
24.01.2017
14:38:16
например, у меня есть сервис который умеет по команде передать всех обслуживаемых клиентов другому процессу.

клиенты этого даже не заметят

никаких реконнектов и прочего.

Vladimir
24.01.2017
14:38:53
> @pragus и строго говоря это тоже неверно. вот с этим не согласен. Это как раз верно именно строго

Admin
ERROR: S client not available

Mike
24.01.2017
14:40:16
так, вот тут подробнее ) ты положил весь массив в память, и запустил некое количество процессов, как их синкать используя общую память?

Vladimir
24.01.2017
14:40:19
сишные расширения отпускают gil.
да, но речь исключительно о нативном коде

Roman
24.01.2017
14:42:54
так, вот тут подробнее ) ты положил весь массив в память, и запустил некое количество процессов, как их синкать используя общую память?
а в чем проблема? бьём массив на чанки, каждому процессу свой чанк. + кусочек памяти для общей инормации по задачам и какой-нибудь набор fd для синхронизации.

Mike
24.01.2017
14:44:42
мне все равно не понятен этап синхронизации (

Roman
24.01.2017
14:45:11
мне все равно не понятен этап синхронизации (
а зачем тут синхронизация вообще? :)

Mike
24.01.2017
14:45:34
когда все чанки отсортированны, нужно получить тот же массив в итоге

Aldar
24.01.2017
14:47:01
я б квиксортом сортировал

Google
Aleh
24.01.2017
14:47:49
для параллельности лучше мерж сорт, но в конце все равно надо одним потоком все объединить в один большой массив

Mike
24.01.2017
14:48:39
вот, должен быть какой-то триггер, что все n процессов закончили работу, чтобы начать объединение

Aldar
24.01.2017
14:48:42
когда квиксорт разделяет массив компаратором на два, каждый подмассив отдать другому потоку

Roman
24.01.2017
14:48:58
когда все чанки отсортированны, нужно получить тот же массив в итоге
http://stackoverflow.com/questions/23531625/multithreaded-sorting-application/23532317#23532317

Aleh
24.01.2017
14:49:05
Roman
24.01.2017
14:49:19
вот вариант с тредами. но с процессами там разница будет минимальна.

вот, должен быть какой-то триггер, что все n процессов закончили работу, чтобы начать объединение
вариантов много. начиная от кусочка памяти, куда каждый по завершению запишет и заканчивая просто каталогом в который каждый воркер что-то напишет.

вариантов посигналить - миллион

Mike
24.01.2017
14:53:25
забыл зачем вообще начал раздувать за мультитред (:

Roman
24.01.2017
14:57:32
да можно по аналогии с гошным WaitGroup сделать https://golang.org/pkg/sync/#WaitGroup
именно. если ограничиться только linux, то можно взять eventfd и через него сигналить )

а так, стоит просто посмотреть как в postgres сделано взаимодействие между процессами. там нет тредов и всё ок.

abc
24.01.2017
14:58:49
ох постгрес. эталон лучшей СУБД

KlonD90
24.01.2017
15:02:13
Ща еще логическую репликацию

Roman
24.01.2017
15:03:47
ох постгрес. эталон лучшей СУБД
вроде как речь была не про эталон, а внутренности.

abc
24.01.2017
15:04:05
кручу эту СУБД уже 9 год

руби уже не входит в 10ку востребованных языков. так что RIP

Alisa
24.01.2017
15:33:19
есть ли в nodejs что-то такое же крутое, как интерактор в руби? (https://github.com/collectiveidea/interactor) кто где логику хранит и как вызываете?

есть конечно самописный аналог на гитхабе, но мне кажется, что должны быть стоящие альтернативы все таки

Сергей
24.01.2017
15:34:51
интерактор схож с DCI

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