URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 117903
[ Назад ]

Исходное сообщение
"Facebook открыл код JavaScript-движка Hermes"

Отправлено opennews , 12-Июл-19 22:03 
Компания Facebook открыла исходные тексты легковесного JavaScript-движка Hermes (https://hermesengine.dev/), оптимизированного для выполнения приложений на базе фреймворка React Native (https://facebook.github.io/react-native/) на платформе Android.  Поддержка Hermes встроена (https://github.com/facebook/react-native/releases) в React Native начиная с сегодняшнего выпуска 0.60.2. Проект признан решить проблемы с большим временем запуска нативных JavaScript-приложений и значительным потреблением ресурсов. Код написан (https://github.com/facebook/hermes/) на языке C++ и распространяется под лицензией MIT.

В движке поддерживается (https://github.com/facebook/hermes/blob/master/doc/Features.md) часть JavaScript-стандарта ECMAScript 2015 (конечной целью является его полная поддержка) и обеспечивается совместимость с большинством существующих приложений React Native. Для включения Hermes в приложении React Native достаточно добавить в проект опцию "enableHermes: true". Также возможна сборка Hermes в режиме CLI-интерфейса, позволяющая выполнить произвольные JavaScript-файлы из командной строки

Из достоинств применения  Hermes отмечается сокращение времени запуска приложения, снижение потребления памяти и уменьшение размера приложения. Ускорение запуска приложений достигается благодаря применению на этапе сборки предкомпиляции в компактный и эффективный байткод. Для непосредственного выполнения приложения применяется разработанная в рамках проекта виртуальная машина со сборщиком мусора SemiSpace. При применении  V8 наиболее длительными являются стадии парсинга исходного кода и его компиляции на лету.  Hermes выносит эти стадии на этап сборки и поставляет поставлять приложения в форме оптимизированного байткода.

Обработка JavaScript разделяется на несколько стадий. Вначале осуществляется парсинг исходных текстов и генерация промежуточного представления кода (Hermes IR (https://github.com/facebook/hermes/blob/master/doc/IR.md)),&...основанного на представлении SSA (https://ru.wikipedia.org/wiki/SSA) (Static Single Assignment).  Далее, промежуточное представление обрабатывается в оптимизаторе, который применяет техники упреждающей статической оптимизиации для преобразования первичного промежуточного кода в более эффективное промежуточное представление, сохраняя  при этом оригинальную семантику программы. На последнем этапе генерируется байткод для регистровой виртуальной машины.


URL: https://www.theregister.co.uk/2019/07/12/facebook_hermes_jav.../
Новость: https://www.opennet.ru/opennews/art.shtml?num=51082


Содержание

Сообщения в этом обсуждении
"Facebook открыл код JavaScript-движка Hermes"
Отправлено Аноним , 12-Июл-19 22:03 
Но ведь уже есть QuickJS.

"Facebook открыл код JavaScript-движка Hermes"
Отправлено Мех , 13-Июл-19 08:52 
Без jit он работает в слоумо в сравнении с любым браузерным движком. А это поделие может вырасти как дополнение к чакре, для простого встраивания.

"Facebook открыл код JavaScript-движка Hermes"
Отправлено Аноним , 13-Июл-19 09:01 
Оно же умеет в native компилять. Но без DOM и CSS, да.

"Facebook открыл код JavaScript-движка Hermes"
Отправлено Мех , 13-Июл-19 13:32 
В натив умеет компилять только великий nectarjs, а quick - обычный интерпретатор, который можно со скриптом внутри в бинарник собрать.

"Facebook открыл код JavaScript-движка Hermes"
Отправлено Андрей , 13-Июл-19 17:03 
> а quick - обычный интерпретатор, который можно со скриптом внутри в бинарник собрать.

Тогда отредактируйте новость, чтобы устранить эту ошибку:

> Более того, доступен компилятор qjsc, способный на выходе генерировать пригодные для обособленного запуска исполняемые файлы, не требующие внешних зависимостей.

https://www.opennet.ru/opennews/art.shtml?num=51079

Если это действительно ошибка, разумеется.


"Facebook открыл код JavaScript-движка Hermes"
Отправлено Мех , 15-Июл-19 13:02 
"The generated C source contains the bytecode of the compiled functions or modules."
Не вижу противоречий. Бенчмарков его нет, но сомневаюсь что это что-то меняет.

"Facebook открыл код JavaScript-движка Hermes"
Отправлено Андрей , 13-Июл-19 17:13 
> В натив умеет компилять только великий nectarjs

Но чтобы его запустить нужен nodejs с npm.


"Facebook открыл код JavaScript-движка Hermes"
Отправлено Мех , 15-Июл-19 13:03 
Если бы ты запустил, то понял шутку)

"Facebook открыл код JavaScript-движка Hermes"
Отправлено Аноним , 12-Июл-19 22:14 
Астрологи объявили неделю легковесных движков javascript.

"Facebook открыл код JavaScript-движка Hermes"
Отправлено Аноним , 13-Июл-19 18:14 
А кто объявил год баянов на опеннете?

"Facebook открыл код JavaScript-движка Hermes"
Отправлено Ilya Indigo , 13-Июл-19 19:52 
3-ие Герои всегда живы!
Их нельзя убить.

"Facebook открыл код JavaScript-движка Hermes"
Отправлено Вторые , 14-Июл-19 05:15 
Это же уже и во вторых вроде было?

"Facebook открыл код JavaScript-движка Hermes"
Отправлено anonymoussssss , 14-Июл-19 11:37 
Это было во всех частях

"Facebook открыл код JavaScript-движка Hermes"
Отправлено segesg , 12-Июл-19 22:23 
>нативных JavaScript-приложений

Оксюморон


"Facebook открыл код JavaScript-движка Hermes"
Отправлено Урри , 12-Июл-19 22:46 
Астрологи объявили неделю JS-велосипедов.
Количество постов с JS движками увеличилось вдесятеро.

"Facebook открыл код JavaScript-движка Hermes"
Отправлено Аноним , 13-Июл-19 00:04 
> Проведённое сотрудниками Microsoft предварительное тестирование производительности показало, что при использовании Hermes приложение Microsoft Office для Android становится доступно для работы через 1.1 сек. после запуска и потребляет 21.5MB ОЗУ, в то время как при использовании движка V8 на запуск тратится 1.4 сек., а потребление памяти составляет 30MB.

Т. е. программеры Фейсбука корячились, пыхтели, а на выходе получилось то же что и всегда у них получалось - толсто и тормознуто. Во всяком случае существенной разницы между "до" и "после" я не вижу. Фабрис Беллар смотрит на них с жалостью и презрением.

Гугл, к слову, в своем Flutter решил проблему кардинально - написал целую операционную систему вместо Android, где DartVM встроен в ядро и не требует распространения вместе с приложениями.


"Facebook открыл код JavaScript-движка Hermes"
Отправлено Аноним , 13-Июл-19 00:12 
JS-движков что-то как грязи. Почему так?

"Facebook открыл код JavaScript-движка Hermes"
Отправлено YetAnotherOnanym , 13-Июл-19 01:10 
Потому что JS-кодеры фейсбука приходят к начальству и говорят: наши приложения тормозят, нужен новый движок. Начальство, вместо того, чтобы отхлестать их линейкой по рукам, заказывает сишникам новый JS-движок. Сишники пишут новый движок, на эпсилон процентов быстрее предыдущего. Но вскоре жабаскриптеры снова приходят к начальству с жалобой на тормозньй движок.

"Facebook открыл код JavaScript-движка Hermes"
Отправлено Аноним , 13-Июл-19 21:43 
Почему бы js-говнокодерам не научиться оптимизировать свой говнокод?

"Facebook открыл код JavaScript-движка Hermes"
Отправлено InuYasha , 13-Июл-19 21:52 
А это вообще возможно с JavaScript?

"Facebook открыл код JavaScript-движка Hermes"
Отправлено Anonymouss , 13-Июл-19 00:32 
Герме́с (др.-греч. Ἑρμῆς, микен. e-ma-a2[1]) — в древнегреческой мифологии бог торговли, прибыли, хитрости, разумности, ловкости и красноречия, дающий богатство и доход в торговле. Покровитель глашатаев, послов, пастухов, путников; покровитель магии, алхимии и астрологии. Посланник богов и проводник душ умерших (отсюда прозвище Психопомп — проводник душ) в подземное царство Аида, изобрёл меры, числа, азбуку и обучил людей.

Спасибо!)


"Facebook открыл код JavaScript-движка Hermes"
Отправлено Аноним , 13-Июл-19 18:16 
> Психопомп

О, так и будем называть!


"Facebook открыл код JavaScript-движка Hermes"
Отправлено YetAnotherOnanym , 13-Июл-19 00:59 
> нативных JavaScript-приложений
> Код написан на языке C++

А не проще писать сами "нативные приложения" сразу на C++?


"Facebook открыл код JavaScript-движка Hermes"
Отправлено Ananas , 13-Июл-19 01:37 
Изыди, Еретик.

"Facebook открыл код JavaScript-движка Hermes"
Отправлено Leo , 13-Июл-19 11:28 
Зачет )))))

"Facebook открыл код JavaScript-движка Hermes"
Отправлено Аноним , 13-Июл-19 02:52 
ну, во-первых в джава больше равно

а дальше по накатанной


"Facebook открыл код JavaScript-движка Hermes"
Отправлено anonymous , 13-Июл-19 09:58 
а потом: фу, ваше приложение для заказа пиццы аварийно завершило работу! у вас слишком кривые руки, чтобы писать на С++

Нативное в react native - возможность налабать "веб страничку с кнопками, которая работает без интернета или с маленьким количеством интернета" для телефона или планшета.


"Facebook открыл код JavaScript-движка Hermes"
Отправлено Аноним , 13-Июл-19 11:10 
Ты так пишешь словно java или js аварийно не завершаются.
И есть qml, который быстрее джавы и js, писался специально под интерфейсики и гораздо проще плюсов, что даже ты осилишь.

"Facebook открыл код JavaScript-движка Hermes"
Отправлено Аноним , 13-Июл-19 01:47 
Сколько уже раз они переизобрели JVM со всеми этими WebAssembly и проч.?

"Facebook открыл код JavaScript-движка Hermes"
Отправлено Онаним , 13-Июл-19 08:31 
Да потому что это овнище как ни оптимизируй, всё равно на выходе лажа получается.
И лучше более-менее универсального V8 для этого овнища пока что не придумано.

"Facebook открыл код JavaScript-движка Hermes"
Отправлено Андрей , 13-Июл-19 20:08 
Каждый любитель должен написать свой мессенджер. А профессионалы - свой эффективный движок JS.

"Facebook открыл код JavaScript-движка Hermes"
Отправлено Аноним , 13-Июл-19 03:19 
>JS
>Facebook
>Android
>Microsoft Office

Кккомбо!


"Facebook открыл код JavaScript-движка Hermes"
Отправлено Аноним , 13-Июл-19 08:26 
Я что-то не понимаю, но рынке мобильников происходит тоже, что и на рынке ПК: память и CPU теряют стоимость, не говоря о том, что все знают про интеловские процы LV и ULV (т.е не топсикрет). Зачем бросать силы на эти оптимизации? Через несколько лет это станет бесмысленным (как бы это уже сейчас так).
Если говорить про настоящие крошечные устройства, то там всегда будет на первом месте ЯП со строгой типизацией, компиляторы в нативный байткод и вставки ассемблера для пущего шика.
Что касается node.js, то в той же Visual Studio она жрет ресурсов немерянно и на 2х ядрах студия еле-еле ворочаяется. И это уровень, который хотят достигнуть? Только после того как изобретут карманные атомные батарейки.

"Facebook открыл код JavaScript-движка Hermes"
Отправлено Аноним , 13-Июл-19 09:29 
Вёб-макак допустили до программирования приложений, развелось интерпретируемых/JIT языков как грязи, а сишники не могут найти работу.

"Facebook открыл код JavaScript-движка Hermes"
Отправлено Аноним , 13-Июл-19 09:48 
сишников не могут найти работодатели, их нет нифига. все или уже работают, или "ok &= a" вместо "ok = ok && a" пишут

"Facebook открыл код JavaScript-движка Hermes"
Отправлено KonstantinB , 13-Июл-19 13:29 
Плохо ищут. Либо плохо учили английский и не там ищут. На мировом рынке, несмотря не все, спрос превышает предложение.

"Facebook открыл код JavaScript-движка Hermes"
Отправлено Аноним , 13-Июл-19 10:06 
Facebook, не пробовал нанимать нормальных JS-программистов, чтобы не писали тонны говно-кода, который еле шевелится?

"Facebook открыл код JavaScript-движка Hermes"
Отправлено Аноним , 13-Июл-19 11:13 
Зачем нужны js программисты, если есть нормальные c++/go/rust разработчики? Да даже питон и проще и быстрее.

"Facebook открыл код JavaScript-движка Hermes"
Отправлено vitalif , 13-Июл-19 11:27 
Питон тормознее раз в 10, чем v8

"Facebook открыл код JavaScript-движка Hermes"
Отправлено Аноним , 13-Июл-19 14:58 
>Питон тормознее раз в 10, чем v8

Джентельмены верят друг другу на слово?


"Facebook открыл код JavaScript-движка Hermes"
Отправлено noname14рпаргнпр , 14-Июл-19 07:51 
да, но
python -> cython -> c
профит

"Facebook открыл код JavaScript-движка Hermes"
Отправлено Аноним , 13-Июл-19 18:40 
раз в 80, чем v8

"Facebook открыл код JavaScript-движка Hermes"
Отправлено Аноним84701 , 13-Июл-19 19:27 
> раз в 80, чем v8

Может, сразу в 100500?
Сравнивать ЯП с реализацией другого ЯП - это вообще "сильно".


"Facebook открыл код JavaScript-движка Hermes"
Отправлено Антон , 14-Июл-19 23:28 
зачем питон если есть js?

"Facebook открыл код JavaScript-движка Hermes"
Отправлено northbear , 13-Июл-19 12:36 
Глядя на убогое глюкавое поделие под названием Facebook что-то другое в их исполнении смотреть желания не возникает. Каким-то удивительным образом React у них получился норм. Но всё остальное...
  

"Facebook открыл код JavaScript-движка Hermes"
Отправлено Аноним , 14-Июл-19 12:36 
В каком месте React норм? После того как Яндекс стал переводить свои сервисы на него, пользоваться стало невозможно. Открой Маркет или из любопытства загляни на главную поисковика и попробуй покликать. Ничем не лучше тормознутого Facebook, на который любят все ссылаться.

"Facebook открыл код JavaScript-движка Hermes"
Отправлено Аноним , 30-Июл-19 08:43 
ну instagram - вполне себе няшный и более менее минималистичный (по сравнению с facebook)

"Facebook открыл код JavaScript-движка Hermes"
Отправлено Аноним , 13-Июл-19 13:35 
Наконец-то!

"Facebook открыл код JavaScript-движка Hermes"
Отправлено InuYasha , 13-Июл-19 21:55 
Hermes vs. QuickJS vs. v8?

Голова уже крУгом от этих ужастиков.


"Facebook открыл код JavaScript-движка Hermes"
Отправлено Аноним , 14-Июл-19 21:46 
>что при использовании Hermes приложение Microsoft Office для Android становится доступно для работы через 1.1 сек. после запуска и потребляет 21.5MB ОЗУ, в то время как при использовании движка V8 на запуск тратится 1.4 сек., а потребление памяти составляет 30MB.

Меньше чем нативная версия на десктопе?????


"Facebook открыл код JavaScript-движка Hermes"
Отправлено Аноним , 30-Июл-19 08:42 
> Hermes выносит эти стадии на этап сборки и позволяет поставлять приложения в форме компактного и эффективного байткода.

WASM? Не слышал...