@devops_ru

Страница 2273 из 4568
Nikolay
11.02.2017
13:28:51
можно без него

Yegor
11.02.2017
13:28:55
Но это тормозить будет

Nikolay
11.02.2017
13:28:59
не будет

Google
Yegor
11.02.2017
13:29:02
Лол

Nikolay
11.02.2017
13:29:03
если нормально реализовать

Yegor
11.02.2017
13:29:18
Утилизация ресуров, уровня Николай

Знаешь почему go любят?

Nikolay
11.02.2017
13:29:34
ну вот тебе простой вариант

Yegor
11.02.2017
13:29:41
Потому что с его помощью ты можешь утилизировать все ресурсы машины которые у тебя есть

Nikolay
11.02.2017
13:30:04
есть веб-приложение асинхронное, есть очередь сообщений для запуска асинхронных тасков на бэкенде

Aleksandr
11.02.2017
13:30:18
single threaded non blocking IO model

Nikolay
11.02.2017
13:30:26
приложение по сути мультиплексирует два сокета - входной и выходной

никаких задержек там нет, все в одном потоке работает

Yegor
11.02.2017
13:30:52
приложение по сути мультиплексирует два сокета - входной и выходной
И чтобы утилизировать остальные ядра тебе надо запустиь несколько инстансов приложения.

А в Go, ты просто создаешь горутины которые используют пул потоков, по сути та же кооперативная многозадачность только сделанная правильно.

Google
Yegor
11.02.2017
13:32:14
single threaded non blocking IO model
Почитай исходники, а не тред на стековерфлоу. То что ивент луп однопоточный никто не спорит. Я даже об этом и писал.

В общем, языки которые не могут утилизировать доступные ресурсы машины без извращений типа cluster-node обьявляются неполноценными.

Полноценные это Go, Java, .C#, Erlang.

Aleksandr
11.02.2017
13:33:51
Почитай исходники, а не тред на стековерфлоу. То что ивент луп однопоточный никто не спорит. Я даже об этом и писал.
ну как я понял из твоих слов, ты утверждаешь, что если нужно обращаться например к нескольким сокетам из ноды, то нужно несколько тредов. это же не так. большинство приложений на ноде и работают из одного потока

Yegor
11.02.2017
13:35:15
Как и руби

Aleksandr
11.02.2017
13:35:59
если принять твоё определение неполноценности, то да. всё так

Yegor
11.02.2017
13:37:30
Ну вот, а утверждать что танцы с бубном вокруг event loop и select/epoll это наше все и именно так нужно строить многопоточные системы, это мягко говоря, неверно. Хотя такой подход, и имеет право на жизнь.

Самое смешное это как Николай предлагал все делать в одном потоке. Не смотря на то, что без пула тредов которые будут делать внешнее IO, все будет тормозить при нагрузке. И не смотря на то что, я его тыкал на то как это сделано в реальном мире, а не в статьях лошков с хабра.

Aleksandr
11.02.2017
13:40:38
ну тут хз, я не соглашусь. ты смешиваешь разные понятия. и мультитред хорошо, и эвентлуп. надо и то и то юзать

Aleksandr
11.02.2017
13:41:09
ты просто утверждал, что не получится написать асинхронное приложение в одном треде

Aleksandr
11.02.2017
13:41:32
опять же как пример nginx

Arius
11.02.2017
13:41:37
всем

ку

есть кто

Aleksandr
11.02.2017
13:41:45
количество тредов обычно равно количеству ядер

Google
Aleksandr
11.02.2017
13:41:58
в каждом треде epoll условно говоря юзается

Yegor
11.02.2017
13:43:17
Ну вот, NGINX использует пул воркеров

Aleksandr
11.02.2017
13:43:45
но если будет 100500 клиентов, он не создаст 100500 тредов

Yegor
11.02.2017
13:43:45
https://www.nginx.com/blog/thread-pools-boost-performance-9x/

Нет конечно

Кооперативная многозаданость

Aleksandr
11.02.2017
13:44:09
так о чём и речь

Nikolay
11.02.2017
13:45:02
треды для конкарренси не нужны. точка. с этим спорить - глупо

как оно в ноде реализовано - это уже другой вопрос

Nikolay
11.02.2017
13:46:09
я тебе пишу про определение, а ты мне реализации тыкаешь

Yegor
11.02.2017
13:46:10
Там по умолчанию один поток, но можно использовать и пул тредов с кооперативщиной.

Nikolay
11.02.2017
13:46:12
не надо так

Yegor
11.02.2017
13:46:42
Ну ну, пиши дальше в одном потоке

Nikolay
11.02.2017
13:46:43
можно что угодно

Yegor
11.02.2017
13:46:58
Только вот изначально речь шла про яву.

Google
Nikolay
11.02.2017
13:47:03
но треды к конкарренси отношения не имеют. Если ты считаешь иначе - извини, ты плохо разбираешься в теме

Aleksandr
11.02.2017
13:47:29
Ngnix
redis?

Alex
11.02.2017
13:47:51
ничего себе, вы до сих пор спорите, держите котиков

Aleksandr
11.02.2017
13:48:11
redis?
он таки слова николая подтверждает :)

Yegor
11.02.2017
13:48:12
redis?
Базару ноль, только он пишет в память, а репликация и сохранение на диск в отдельных тредах.

И вообще. Это частный случай.

Nikolay
11.02.2017
13:48:44
Базару ноль, только он пишет в память, а репликация и сохранение на диск в отдельных тредах.
ну то есть ты согласен, что выше насчет определения конкарренси написал херню?

окей

давно пора

Aleksandr
11.02.2017
13:49:18
И вообще. Это частный случай.
ну да. он подтверждает то, что для конкурентности достаточно одного треда

Yegor
11.02.2017
13:49:33
ну то есть ты согласен, что выше насчет определения конкарренси написал херню?
Это не отменяет первоначального тезиса, что в джаве канкарренси/паралеллизм сделаны лучше чем в Node.js/Python/Ruby и прочих скриптовых языках.

Nikolay
11.02.2017
13:49:56
потому что конкарренси в питоне отличное, а треды к этому отношения не имеют

Yegor
11.02.2017
13:50:07
Окей, в явке, шарпах, ты можешь использовать ивент луп и epoll, а можешь все по другому сделать

Nikolay
11.02.2017
13:50:13
и в nodejs конкарренси тоже отличное

и да, оно лучше, чем в джаве

Yegor
11.02.2017
13:50:30
Только утилизация ресурсов, что там, что там - говно.

Nikolay
11.02.2017
13:50:32
и там и там

Yegor
11.02.2017
13:50:50
Если ты кодишь на машине с одним ядром, то может быть.

Google
Nikolay
11.02.2017
13:51:30
Только утилизация ресурсов, что там, что там - говно.
утилизация ресурсов не имеет отношения к конкарренси, опять же

есть концепция конкурентности

она описывает подход

утилизация ядер, треды - это все к конкарренси не имеет отношения

Yegor
11.02.2017
13:52:47
Окей, то есть ты утверждаешь что если весь IO и процессинг делать в одном треде на одном ядре, то это заебок.

Nikolay
11.02.2017
13:52:50
сколько раз мне тебе еще этот очевидный факт написать, чтобы ты понял?

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

но во многих задачах - да, это отлично будет работать

и я тебе привел пример такой задачи выше

Yegor
11.02.2017
13:57:28
Окей, я с тобой согласен, насчет самого термина канкареннси, который родом чуть ли не из 70-80х, когда все компютеры были на одном ядре, но в современном мире надо уметь оптимально использовать доступные ядра процессора, и вот языки которые позволяют софтине утилизировать больше чем 1 ядро всегда будут скейлиться лучше и проще чем языки которые плохо малтитрединг поддерживают. Поэтому без модулей на С/C++ твой python это язык не полноценный.

Nikolay
11.02.2017
13:58:59
вместо GIL

и да, если говорить о термине “конкарренси” - да, в питоне оно в разы лучше, чем в джаве

насчет многопоточности - наверное, джава выиграет

Yegor
11.02.2017
14:00:24
и да, если говорить о термине “конкарренси” - да, в питоне оно в разы лучше, чем в джаве
В явке тоже внезапно можно сделать реализацию на select/epoll и event loop

Reactor паттерн реализации есть

Nikolay
11.02.2017
14:00:49
В явке тоже внезапно можно сделать реализацию на select/epoll и event loop
покажи мне хоть один асинхронный фреймворк на джаве, который сравним по производительности с tornado/aiohttp/gevent

Vladimir
11.02.2017
14:01:07
@Ychumakov как ты относишься к бане?

Arius
11.02.2017
14:01:14
вы гуси

ВСЕ

targitaj
11.02.2017
14:01:40
Мы - роботы

Страница 2273 из 4568