@nodejs_ru

Страница 17 из 2748
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
Речь идет о сервере.
А зачем на сервере компилять в while true, если можно компилять в генераторы?

Artur
17.05.2016
18:01:23
Влад
17.05.2016
18:01:49
https://github.com/petkaantonov/bluebird/tree/master/benchmark
А есть хоть одно реальное приложение, где промисы что-то тормозят?

Влад
17.05.2016
18:02:29
Без понятия зачем babel это делал таким образом.
Потому что это дефолтное поведение для поддержки старых браузеров. Подрубаешь плагин и компилится в генераторы

Nikita
17.05.2016
18:02:48
блин) Я про то, что если while(true) вас напрягает - как могут не напрягать тормознутые промисы

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
что плохого в while(true) {} ?
плохого ничего нет, если это не приложение под нагрузкой

из-за этого на фронте

это норм, на беке, смотря для каких целей и нагрузки

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
10к раз все тесты запускаются)
Я уже понял, поэтому запустил на сервере.

Google
Nikita
17.05.2016
18:19:06
И как бы это вляло на перформанс если бы он заранее рекваерил?
я не задрот перфоманса. Мне просто нравятся быстрые, более полные функционально решения. Поэтому мне нравится bluebird.

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
6.2 вышла. По первой пробе - проблемы, которые у меня появились на 6 версии - отвалились)
а какие были проблемы? я только заметил снижение скорости работы с массивами

Константин
18.05.2016
10:02:20
а какие были проблемы? я только заметил снижение скорости работы с массивами
У меня главная неприятность была в том, что то, что хорошо работало на 5 стало неплохо так отъедать ресурсы и даже порой вылетать с переполненным стеком.

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
Это очень даже радует. А как по ощущениям трудозатраты отличаются?

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