Artur
17.05.2016
17:59:10
Влад
17.05.2016
17:59:31
Artur
17.05.2016
17:59:45
Речь идет о сервере.
Проработав около 10 лет с PHP у меня как-то представление о тормознутости иное. Это что-то вроде "рендер страницы на сервере 600ms долгоооо".
Google
Artur
17.05.2016
18:00:49
Влад
17.05.2016
18:00:49
Artur
17.05.2016
18:01:23
Влад
17.05.2016
18:01:49
Artur
17.05.2016
18:02:06
Влад
17.05.2016
18:02:29
Nikita
17.05.2016
18:02:48
блин) Я про то, что если while(true) вас напрягает - как могут не напрягать тормознутые промисы
Artur
17.05.2016
18:05:10
Nikita
17.05.2016
18:05:35
вот прогнал сейчас бенчмарк
Artur
17.05.2016
18:05:55
promises-then-promise это нэйтив?
Nikita
17.05.2016
18:06:01
ой не, глупость написал)
и тут глупость
Google
Nikita
17.05.2016
18:07:10
promises-ecmascript6-native.js - вот нативные
Artur
17.05.2016
18:08:56
сейчас тоже попробую
Roman
17.05.2016
18:09:11
что плохого в while(true) {} ?
любой event loop так работает
Nikita
17.05.2016
18:09:37
v8 такой код не оптимизирует, вроде
Влад
17.05.2016
18:10:22
Начал смотреть в код бенчмарков блюберда. Глаза вытекают, они всюду глобальные переменные юзают
Откуда здесь берутся parallelQueries? https://github.com/petkaantonov/bluebird/blob/master/benchmark/madeup-parallel/promises-bluebird.js
Nikita
17.05.2016
18:13:09
все что я могу сказать - автор признаный perf задрот, у него есть неплохая статья про производительность в v8
Влад
17.05.2016
18:14:16
Помимо перформанса код еще поддерживаемым должен быть, мы же не на олимпиаде
Nikita
17.05.2016
18:14:47
https://github.com/petkaantonov/bluebird/blob/5bffd55f20f1df5361603612867f286fa13e56e3/benchmark/performance.js#L37
это бенчмарк и это опенсорс) Возможно сделай он по другому - это влияло бы на перфоманс)
Gregory
17.05.2016
18:15:14
из-за этого на фронте
это норм, на беке, смотря для каких целей и нагрузки
Влад
17.05.2016
18:16:49
Artur
17.05.2016
18:16:59
Какой-то бесконечный бенчмаркинг
Влад
17.05.2016
18:17:15
Nikita
17.05.2016
18:17:19
10к раз все тесты запускаются)
Artur
17.05.2016
18:17:52
Google
Nikita
17.05.2016
18:19:06
2 скрина бенчмарков как бы это все подтверждают)
Artur
17.05.2016
18:19:32
Сейчас еще на 6-й ноде попробую.
А то тоже как-то уныло
Влад
17.05.2016
18:19:47
Я лично верю что блюберд быстрее, мне интересно как это возможно
Artur
17.05.2016
18:19:55
А чего тогда node team bluebird не взяли в качестве нативной либы?
Roman
17.05.2016
18:19:59
@AGambit на сколько понимаю, дело не в while(true){}, а используется ли эффективно event loop
Nikita
17.05.2016
18:20:04
ага, там 5 v8, вдруг они улучшили) А хотя погодите... нет)
Gregory
17.05.2016
18:20:15
да
и просто в расходе памяти на это
Влад
17.05.2016
18:20:30
Есть подозрение, что блюберд не по спеке работает и в том же тике промис резолвит
Nikita
17.05.2016
18:20:32
на сколько я знаю node вообще ничего из стандартной библиотеки, кроме таймеров не переопределяют
плюс в ядре ноды нет промисов
Влад
17.05.2016
18:20:52
Nikita
17.05.2016
18:21:20
я имею ввиду они не используются
поэтому ноде и нет смысла их переопределять
все по спеке)
Artur
17.05.2016
18:22:07
Так насколько я знаю, promise на самом же JS написан
Nikita
17.05.2016
18:22:08
+ туча удобных методов вроде map/filter/each/get/spread/etc.
вот именно это и удручает) как команда v8 умудряется так писать - не понятно
Google
Artur
17.05.2016
18:23:02
Потому что смузи, ковокинг и все вот это)
Влад
17.05.2016
18:23:37
Можете у славы егорова в твиторах спросить почему нативные промисы медленнее
Nikita
17.05.2016
18:24:06
и вишенка - у метода map есть concurrency опция. Чтобы не 1000 запросов слать, а по 5. как queue в async, или как-то так
мне вполне понятен ответ Листочкина. Сначала они делают 100% покрытие es2015, а потом работают над перфомансом
Artur
17.05.2016
18:25:02
callback'и наше усе!
Nikita
17.05.2016
18:25:54
34% оверхеда на async/await относительно колбэков. Мне кажется это очень неплохо)
убедил?)
Artur
17.05.2016
18:37:49
Ну практически. Если я правильно посчитал, то 100 нейтив промисов это около 10ms (если брать серверный результат бенча). Что как-то огорчительно для меня :(
А я тоже иногда люблю позадротстсовать с циферками...
Oleg
17.05.2016
18:48:37
хэй, час, а я правильно понял, что в следущем LTS ноды будет async/await?
интересует "точно"/"не точно"
Denis
17.05.2016
18:56:10
Следующий LTS = 6, а пока еще в 6 нет их (так что совсем не точно)
Oleg
17.05.2016
18:59:43
прочитал про осень что-то
Nikita
17.05.2016
19:21:57
По идее там lts через 1 мажорный идут. То есть 4,6,8
Так что в след мажорном, видимо. Но не лтс
Vladimir
18.05.2016
05:56:17
ES Modules, async/await в Chakra https://twitter.com/MSEdgeDev/status/732616955560005634
У меня в связи с этим два вопроса. Когда нам ждать ES Modules в v8? Кто то пытался использовать node на chakra?
Andrey
18.05.2016
07:12:54
и как там реализованы es modules ? как они грузятся?
Vladimir
18.05.2016
07:20:22
@vmakhaev Разве ядро ноды абстрагировали, чтобы она могла использовать и чакру, и v8?
Google
Vladimir
18.05.2016
07:20:55
Как в чакре сделали модули это очень хороший вопрос
В блоге немного объяснили, но не все
Andrey
18.05.2016
07:24:36
<script type='module' src='./app.js'> - хм, то есть если не указать type уже не будут работать импорты? Но да, инфы мало и нужно будет сегодня дома протестить на edge
Vladimir
18.05.2016
07:28:25
Там был PR от Microsoft и как я понял пока это форк ноды с поддержкой чакры. https://habrahabr.ru/post/276617/
Andrey
18.05.2016
07:29:40
но вроде как в итоге завернули, или я не видел способов запуска node.js на chakra
хотя вот репозиторий - https://github.com/nodejs/node-chakracore но что бы собрать, нужна win машина и Visual Studio -_-
Vladimir
18.05.2016
08:14:43
вот-вот
не видел, чтобы пулл-реквест с добавлением чакры в ноду взлетел =(
Константин
18.05.2016
09:24:52
6.2 вышла. По первой пробе - проблемы, которые у меня появились на 6 версии - отвалились)
Andrey
18.05.2016
09:26:53
Константин
18.05.2016
10:02:20
Vladimir
19.05.2016
07:04:43
злые языки говорят, что если с ноды на go перейти, то всё становится значительно быстрее, и в 3 раза меньше памяти жрёт http://blog.scaledrone.com/posts/nodejs-to-go
Denis
19.05.2016
07:15:13
10-15мб ram
Vladimir
19.05.2016
07:31:22
это на процесс?
Denis
19.05.2016
07:41:31
да, на голый процесс, без аллокации больших данных в памяти (in-memory cache) и прочего, у нас микросервисы, после оптимизаций выходит по 20-30 мб на каждый, те, что работат с фронтом: 200-1000 мб (держат websocket соединения)
https://habrahabr.ru/company/mailru/blog/283228/
Vladimir
19.05.2016
08:01:32
Это очень даже радует. А как по ощущениям трудозатраты отличаются?