
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

Vladimir
24.01.2017
14:06:24

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

Roman
24.01.2017
14:17:39

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

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

Roman
24.01.2017
14:21:26

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

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

Roman
24.01.2017
14:26:30

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

Nikita
24.01.2017
14:29:11

Vladimir
24.01.2017
14:30:19

Roman
24.01.2017
14:31:07

Aleh
24.01.2017
14:32:13

Nikita
24.01.2017
14:32:19

Roman
24.01.2017
14:32:26

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 из сокета, то мы сгружаем это в пул тредов?

Mike
24.01.2017
14:33:56

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

Roman
24.01.2017
14:35:13

Aleh
24.01.2017
14:36:14

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
и строго говоря это тоже неверно.
вот с этим не согласен. Это как раз верно именно строго

Roman
24.01.2017
14:39:03

Admin
ERROR: S client not available

Roman
24.01.2017
14:39:52

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

Vladimir
24.01.2017
14:40:19

Roman
24.01.2017
14:42:54

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

Aleh
24.01.2017
14:49:05

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

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

abc
24.01.2017
14:56:33

Roman
24.01.2017
14:57:32
а так, стоит просто посмотреть как в 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