@nodejs_ru

Страница 813 из 2748
Aleksandr
31.05.2017
14:03:23
Какие различия между сервером на Python и сервером на Node.js?
в python 3.6 сетевые приложения сильно эффективнее nodejs, сам python как и прежде сильно медленнее nodejs

Andrey
31.05.2017
14:05:42
в python 3.6 сетевые приложения сильно эффективнее nodejs, сам python как и прежде сильно медленнее nodejs
Как их сравнивать? Нода асинхронна бай дизайн, а пайтон только начал

Ilya
31.05.2017
14:07:17
в пайтоне ж вроде надо рукаме эвентлуп вращать. не?

Aleksandr
31.05.2017
14:07:27
Как их сравнивать? Нода асинхронна бай дизайн, а пайтон только начал
в питон портировали libuv, в стандартной библиотеке есть eventloop, и это сильно быстрее ноды, рокет-фаст просто

Google
Vladimir
31.05.2017
14:08:03
За счет чего?

Aleksandr
31.05.2017
14:10:05
За счет чего?
там нет v8, использование сишных биндингов из питона намного эффективнее

Vladimir
31.05.2017
14:10:34
Это может быть

Aleksandr
31.05.2017
14:11:32
но да, научиться писать смешанный синхронный и асинхронный код с async/await очень непросто, плюс очень низкие и пока плохие абстракции в asyncio, но выигрыш по сети местами в порядок можно получить

Vladimir
31.05.2017
14:12:40
И еще либы искать, которые будут работаться со всем этим

arts
31.05.2017
14:12:54
Как их сравнивать? Нода асинхронна бай дизайн, а пайтон только начал
"Только начал" — это это сколько? Я на twisted ещё лет восемь назад писал, tornado и gevent тоже давно существуют.

Andrey
31.05.2017
14:13:43
Ага.

Aleksandr
31.05.2017
14:13:53
И еще либы искать, которые будут работаться со всем этим
нет, для синхронных либ есть специальный пул экзекьюторов из потоков, доя асинхронных все в одном

в питоне теперь тоже есть async/await?
причем опять же круче ноды, он там есть гораздо шире и эффективнее: в контекстных менеджерах, в итераторах, есть возможность управлять awaitable логикой любого объекта

arts
31.05.2017
14:22:12
нет, для синхронных либ есть специальный пул экзекьюторов из потоков, доя асинхронных все в одном
С gevent и этого не надо. Он подменяет встроенные сокеты и ещё некоторые вещи на свои, и в итоге почти любой синхронный код работает асинхронно.

Aleksandr
31.05.2017
14:24:02
С gevent и этого не надо. Он подменяет встроенные сокеты и ещё некоторые вещи на свои, и в итоге почти любой синхронный код работает асинхронно.
у гевента своя абстракция функций с состоянием, гринлеты штука специфичная, плюс он непрост в отладке, не быстр, хотя раньше был спасением, да.



Google
Ilya
31.05.2017
14:27:04
да, но встает вопрос - а нафига такая скорость

один хрен бд придется ждать

Sergey
31.05.2017
14:34:45
кто нить может рассказать как на ноде организуется переиспользование коннектов к бд? или ткнуть чего почитать на эту тему

должно же быть что то вроде DI

Oleg ?
31.05.2017
14:36:37
На какой ноде?

Сергей
31.05.2017
14:36:53
0.11 вестимо

Dmitry ?
31.05.2017
14:37:24
кто нить может рассказать как на ноде организуется переиспользование коннектов к бд? или ткнуть чего почитать на эту тему
Должен быть пул соединений, когда хочешь сделать запрос к базе берешь свободный коннект из пула

Sergey
31.05.2017
14:38:19
ну да, это впринципе понятно, но не в глобал же это пихается?)

Sergey
31.05.2017
14:42:06
+

осваиваюсь после пыхи потихоньку

Dmitry ?
31.05.2017
14:43:10
Ну вот в модуле коннектишься к базе, этот модуль будет как синглтон, просто потом require его

Aleksandr
31.05.2017
14:43:19
один хрен бд придется ждать
смотря какую, смотря где, постгрес местами эфективно может заменять монгу или ресинкдб, а там механика другая

Sergey
31.05.2017
14:48:09
Ну вот в модуле коннектишься к базе, этот модуль будет как синглтон, просто потом require его
видимо надо будет перечитать про то как модули работают все же))

Konstantin
31.05.2017
14:49:46
Одно из основных отличий пхп от ноды в том, что в пхп скрипт выполняется каждый раз целиком для каждого запроса. В ноде программа запускается один раз, и далее все запросы обрабатываются в этом процессе. Поэтому каким-то особым образом управлять соединениями к БД не нужно. Соединение создается и остается открытым (в идеале) на всё время работы программы.

* я ведь прав насчет пхп? )

Evgeny
31.05.2017
14:50:32
* не совсем

Google
Roman
31.05.2017
14:51:32
один хрен бд придется ждать
с чего бы вдруг такое утверждение?

Konstantin
31.05.2017
14:52:03
кеш-байткода?
не понял вопроса )

Roman
31.05.2017
15:02:40
не понял вопроса )
>скрипт выполняется каждый раз целиком для каждого запроса зачем каждый раз заниматься парсингом, построением ast и генерацией байткода, если можно просто закешить байткод? ну и есть php daemon

Konstantin
31.05.2017
15:04:52
Я не говорил про парсинг и вот это вот всё. Я о том, что выполняющийся пхп-скрипт ничего не знает о других запросах в отличие от ситуации в ноде.

Nurik
31.05.2017
15:15:58
причем опять же круче ноды, он там есть гораздо шире и эффективнее: в контекстных менеджерах, в итераторах, есть возможность управлять awaitable логикой любого объекта
Напрашивается вопрос: Если python так же эффективен как и нода, то не лучше ли выбрать python ? Подводные камни или просто дело вкуса ?)

Mikhail
31.05.2017
15:26:30
Напрашивается вопрос: Если python так же эффективен как и нода, то не лучше ли выбрать python ? Подводные камни или просто дело вкуса ?)
Бенчмарки - вещь странная. В блоге по PHP всегда графики показывают, что PHP быстрее любого языка. В блоге по Python, node.js и пр. аналогично

Aleksandr
31.05.2017
15:27:37
Напрашивается вопрос: Если python так же эффективен как и нода, то не лучше ли выбрать python ? Подводные камни или просто дело вкуса ?)
их очень много, я давно пришел к выводу: выбираю технологию реализации исходя из задачи. что-то лучше на питоне, что-то быстрее на ноде. несколько языков это ок.

php-daemon жи.
принцип один запрос - один воркер (процесс) это не изменяет. поэтому php и днище. fastcgi неприлично устарел

Andrey
31.05.2017
15:29:36
сори за оффтоп :) а накидайте интересных ссылок по микросервисным архитектурам в ноде и околонодовой инфраструктуре? я тут планирую недельку выделить и поресерчить че интересного появилось за последнее время пока список такой: https://istio.io/ https://github.com/hemerajs/hemera

Mikhail
31.05.2017
15:33:04
бенчмарк всегда можно повторить самому, а еще сделать свой
Так ли просто сделать объективный и правильный бенчмарк?

Aleksandr
31.05.2017
15:33:55
Так ли просто сделать объективный и правильный бенчмарк?
для своей задачи весьма просто. а делать абстрактные бенчмарки не нужно.

Aleksandr
31.05.2017
15:37:06
нет же. в php-daemon тот же event loop
не знал, да, это уже что-то, но libevent под капотом и поодержка третьих лиц. ну лет 5 назад было бы ок

Google
Aleksandr
31.05.2017
15:42:53
а что не так с libevent?
по кросс-платформенности и скорости несравнима с libuv, нода подарила миру супер-быструю и переносимую библиотеку, которую притащили в python, rust, lua, .net. в python она кстати быстрее чем в nodejs, для которого была создана.

плюс libuv умеет эффективно файлы и треды, это очень мощное преимущество

Andrey
31.05.2017
15:47:25
спасибо

Aleksandr
31.05.2017
15:47:35
libevent же дает инвентарь уровня 5-7 летней давности, это совсем никуда

Nurik
31.05.2017
15:47:48
Бенчмарки - вещь странная. В блоге по PHP всегда графики показывают, что PHP быстрее любого языка. В блоге по Python, node.js и пр. аналогично
Согласен. Но PHP это другое. Он просто изначально построен так, что всегда умирает. Демонизация в нем вызывает дискомфорт лично у меня.

Aleksandr
31.05.2017
15:49:08
спасибо
https://github.com/mfornos/awesome-microservices вот тут по всей инфраструктуре, не только про ноду

Admin
ERROR: S client not available

Andrey
31.05.2017
15:50:01
ну в awesome пихают все подряд, везде полно откровенного шлака

Aleksandr
31.05.2017
15:51:30
ну в awesome пихают все подряд, везде полно откровенного шлака
это наоборот круто, там списки всего что может привлечь внимание, я могу натурально неделями висеть в репе изучая и анализируя пригодность каких-то вещей для моей задачи, очень набивает широту кругозора и интуицию в будущем

Nurik
31.05.2017
15:51:34
всмысле "эффективен"?
Ну я имел ввиду, что за те же ресурсы, получаем ту же производительность. Т.е. они могут конкурировать на одинаковых задачах.

Roman
31.05.2017
15:55:58
по кросс-платформенности и скорости несравнима с libuv, нода подарила миру супер-быструю и переносимую библиотеку, которую притащили в python, rust, lua, .net. в python она кстати быстрее чем в nodejs, для которого была создана.
во-первых, там много нюансов, начиная с только что poll watchers в винде умеют только сокеты и заканчивая тем что максимальное разрешение таймеров огрубляется до 1ms.

Ну я имел ввиду, что за те же ресурсы, получаем ту же производительность. Т.е. они могут конкурировать на одинаковых задачах.
сильно зависит от. обслуживание event loop не бесплатное и в cpu bound задачах это будет видно. если же сравнивать nodejs и python(в лице pypy), то нода быстрее(но можно накорябать сишное расширение).

Aleksandr
31.05.2017
15:59:16
всмысле?
в прямом, epoll, например, не умеет файлы, в линуксе вообще асинхронная работа с файлами очень плохая, без переносимой и хорошо абстрагированной либы с минимальным оверхедом относительно системных вызовов никак. libuv это отлично делает

Google
Aleksandr
31.05.2017
16:03:41
>epoll, например, не умеет файлы умеет, через inotify
раньше не умел никак, а с какой версии ядра? чтение/запись всегда неблокирующаяся?

Nurik
31.05.2017
16:03:51
сильно зависит от. обслуживание event loop не бесплатное и в cpu bound задачах это будет видно. если же сравнивать nodejs и python(в лице pypy), то нода быстрее(но можно накорябать сишное расширение).
Ну так не нужно cpu bound. Изначально вроде event loop заточен под io bound. cpu bound задачи, должны вроде решаться за пределами event loop, если я правильно понял концепцию.

Roman
31.05.2017
16:05:09
если нет - да, процесс будет заблокирован и это решается пулом потоков в который сгружаются такие операции

libuv именно так и делает.

Aleksandr
31.05.2017
16:08:47
libuv именно так и делает.
этим он и хорош, а есть где почитать подробно про epoll -inotify? я не знал про это

если нет - да, процесс будет заблокирован и это решается пулом потоков в который сгружаются такие операции
вот в питоне asyncio (uvloop) файлы не умеет, там тоже с файлами надо работать через потоки, вот это совсем плохо когда нужно писать логику и продукт а приходится познавать особенности ядра (хотя это и интересно очень)

Кирилл
31.05.2017
17:09:50
О круто https://medium.com/npm-inc/npm-5-is-now-npm-latest-d674e9e3b0ec

Serge
31.05.2017
17:14:23
Господа, шалом. кто-нибудь фиксил 503 ошибку при фетче поста с клиента на сервер в heroku? На локале все норм. Деплоится на хероку тоже норм но как только тригерю фетч все крашится с 503. React-express

Кирилл
31.05.2017
17:16:12
ну и туда же https://medium.com/@treyhuffine/whats-new-in-node-8-e1cce6539a71

Aleksandr
31.05.2017
18:06:00
ну и туда же https://medium.com/@treyhuffine/whats-new-in-node-8-e1cce6539a71
с аддонами прям прорыв, наконец эта жесть с api закончится может

Konstantin
31.05.2017
18:23:46
О, пришёл с новостями, а вы уже

Кирилл
31.05.2017
18:24:24
Самый быстрый шитпостинг на диком западе

Roman
31.05.2017
18:41:20
То есть импорт стейтменты опять не сделали(

Кирилл
31.05.2017
18:41:41
типа import как в бабеле?

Roman
31.05.2017
18:42:06
Да, уже 2 года не родят никак

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