Предоставляет ли Microsoft ChakraCore какое-либо преимущество в производительности по сравнению с Google V8 при использовании в качестве JS Engine для Node.js

[ Я отредактировал свой вопрос, чтобы сузить сценарий только до Node.js. Повторно откройте его. Это полезный вопрос, и правильные ответы могут появиться в будущем и не раньше, чем ChakraCore все еще в очень молодом возрасте. Но этот вопрос важен и должен быть здесь]

Мы все знали/читали/слышали о славе Google V8 Engine и о том, как она сделала Node.js красоту, на протяжении многих лет.

Но теперь, когда у нас есть возможность выбрать между Microsoft ChakraCore и Google V8 в качестве нашего предпочтительного механизма JavaScript, Мне интересно, есть ли у кого-нибудь доказательства, или тестовые случаи, когда они обнаружили, что один из них более эффективен, чем другой для nodejs.

Пожалуйста, верните свой ответ с некоторыми фактами и результатами, потому что кто-то не должен использовать/выбирать чакру только потому, что он любит Microsoft или, что то же самое относится к V8 и Google.

Спасибо.

Ответы

Ответ 1

How they are different?

В то время как большинство современных механизмов JavaScript преобразуют весь код JavaScript в эффективный машинный код (исходный код), в Chakra есть интеллектуальный и высокопроизводительный интерпретатор. Этот интерпретатор обладает интеллектуальной эвристикой, которая может определить, следует ли скомпилировать ваш код в машинный код или интерпретировать его. Обычно интерпретатор запускается быстрее и требует меньше памяти для запуска, что делает Chakra очень привлекательным для сред с ограниченными ресурсами (таких как Raspberry Pi).

В 2015 году Microsoft представила поддержку Node.js с Chakra, чтобы позволить разработчикам ориентироваться на платформу Windows IoT Core. Недавний открытый доступ к ChakraCore позволил Microsoft развиваться открыто и лучше соответствовать графикам выпуска Node.js.

В недавнем эпизоде JavaScript Air, Стив Люкко упомянул, что команда Chakra планирует "действительно серьезно относиться к сообществу и серьезно относиться к его вкладу с точки зрения направления работы двигателя". [и] дают сообществу гораздо больше информации, чем, например, в направлении V8 ".

Стремясь создать эффективный JavaScript-движок для памяти, Microsoft фактически создала конкурентно быстрый. На момент написания этой статьи в некоторых случаях чакра превосходила V8:


(источник: msecnd.net)

Тесты не обязательно указывают на реальную производительность, но эта конкуренция в производительности виртуальных машин в конечном итоге приведет к более быстрому выполнению Node.js для пользователей всех виртуальных машин.

Стоит также отметить, что наличие собственного движка JavaScript позволит Microsoft свободно вводить новшества. Одним из ранних нововведений является отладка путешествий во времени.

Ответ 2

Как они отличаются?

Ну, вопрос слишком широк, чтобы отвечать в данный момент в формате, но я попробую ответить на него.

В двигателе Google V8 есть все функции, которые необходимы для того, чтобы иметь высокую скорость работы. Таким образом, в основном это один из базовых для nodejs довольно долгое время, и он будет работать в течение длительного времени.

С другой стороны, Microsoft ChakraCore также активно развивается и имеет две структуры слоев (неспособные назвать их) с помощью Chakra Shim и ChakraCore. strong > .
Вещь, чтобы заметить Chakra Shim, реализует наиболее важные API V8, так что базовое изменение JavaScript-кода прозрачно для Node.js и других собственных модулей аддонов, написанных для V8.

Источник: NodeJs-ChakraCore

Для OP: Ищите webassembly.