Комментарии 16
Отвечая на вопрос статьи — я использую мат. прогрессии вместо переборов, примитивы вместо объектов (в данном случае речь не о JS) и алгоритмы, которые проверены временем. Обычно это дает достаточный результат.
-4
Оригинал статьи активно редактируется в ответ на множественные поправки, в том числе от разработчиков V8. За процессами изменения можно следить в репозитории:
https://github.com/davidmarkclements/v8-perf
Обсуждение также ведётся в комментариях под оригиналом и репостом:
https://www.nearform.com/blog/node-js-is-getting-a-new-v8-with-turbofan/
+3
Коленвал на КДПВ вроде как от V6, не?
0
Почему
for-in
в 5.9 стал в четыре (!) раза медленнее, чем был в 5.8?+3
Интересно как обстоят дела у других движков?
0
Если JS-число (целиком) превышает 2147483647, JIT-компилятору приходится динамически менять базовый тип числового значения на тип с двойной точностью (с плавающей запятой)
Тут есть нюанс, например если взять очень большое число 9007199254740891 и прибавить к нему 1, мы получим как и ожидаем 9007199254740892, но если мы к нему прибавим 0.5, то в результате мы получим все те же 9007199254740891, а если 0.6, то результат будет, как вы вероятно уже догадались 9007199254740893. С этими большими целыми числами (от 2 в 32й до 2 в 53й степени — 1) есть еще нюанс, с ними не работают битовые операции, число будет усечено до 32х бит, например 2147483647 >>> 0 === 2147483647, а вот 9007199254740892 >>> 0 === 4294967196
+3
не успел… не 9007199254740893, а 9007199254740892 конечно же
+1
А WA решает проблему этой математики? Просто вроде именно там можно делать что хочешь, то есть по идее через wasm уже можно будет подзакинуть туда нормальный движок математический, если в v8 это дело не поправят...
Спасибо что указали на эту особенность, я конечно не использовал никогда js для математики, но теперь я буду знать, что его не стоит рассматривать в этом ракурсе.
0
Ограничение битовых операций 32 битами, конечно, очень раздражает. Понимаю оптимизация, но нельзя же отрезать такой функционал совсем — пусть медленнее, но работает. Уже не раз сталкивался, что не хватало.
0
Опять не увидел главной фразы любого поста про бенчмарки: «динамическая настройка частоты процессора была отключена»
+1
Nodejs — это когда каждый из цилиндров двигателя работает по отдельности от остальных, независимо. А не так, как на заглавной картинке.
0
Это пока не зарелизится servo. Если у ребят получится то что они планировали, то нода помимо движка от мс начнёт поддерживать и автоматически распараллеливаемый код.
0
Servo — это только про рендеринг html/css.
JavaScript движок (SpiderMonkey) пока никто не переписывает на Rust и нет никакого автоматического распараллеливания https://github.com/servo/servo/wiki/Design#javascript-and-dom-bindings
JavaScript движок (SpiderMonkey) пока никто не переписывает на Rust и нет никакого автоматического распараллеливания https://github.com/servo/servo/wiki/Design#javascript-and-dom-bindings
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Новый V8 и скорость Node.js: техники оптимизации сегодня и завтра