The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Facebook открыл код JavaScript-движка Hermes"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"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.me/opennews/art.shtml?num=51082

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения [Сортировка по времени | RSS]


1. "Facebook открыл код JavaScript-движка Hermes"  +9 +/
Сообщение от Аноним (1), 12-Июл-19, 22:03 
Но ведь уже есть QuickJS.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

18. "Facebook открыл код JavaScript-движка Hermes"  –4 +/
Сообщение от Мех (?), 13-Июл-19, 08:52 
Без jit он работает в слоумо в сравнении с любым браузерным движком. А это поделие может вырасти как дополнение к чакре, для простого встраивания.
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

19. "Facebook открыл код JavaScript-движка Hermes"  +/
Сообщение от Аноним (19), 13-Июл-19, 09:01 
Оно же умеет в native компилять. Но без DOM и CSS, да.
Ответить | Правка | ^ к родителю #18 | Наверх | Cообщить модератору

30. "Facebook открыл код JavaScript-движка Hermes"  +/
Сообщение от Мех (?), 13-Июл-19, 13:32 
В натив умеет компилять только великий nectarjs, а quick - обычный интерпретатор, который можно со скриптом внутри в бинарник собрать.
Ответить | Правка | ^ к родителю #19 | Наверх | Cообщить модератору

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

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

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

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

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

Ответить | Правка | ^ к родителю #30 | Наверх | Cообщить модератору

50. "Facebook открыл код JavaScript-движка Hermes"  +/
Сообщение от Мех (?), 15-Июл-19, 13:02 
"The generated C source contains the bytecode of the compiled functions or modules."
Не вижу противоречий. Бенчмарков его нет, но сомневаюсь что это что-то меняет.
Ответить | Правка | ^ к родителю #33 | Наверх | Cообщить модератору

34. "Facebook открыл код JavaScript-движка Hermes"  +/
Сообщение от Андрей (??), 13-Июл-19, 17:13 
> В натив умеет компилять только великий nectarjs

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

Ответить | Правка | ^ к родителю #30 | Наверх | Cообщить модератору

51. "Facebook открыл код JavaScript-движка Hermes"  +/
Сообщение от Мех (?), 15-Июл-19, 13:03 
Если бы ты запустил, то понял шутку)
Ответить | Правка | ^ к родителю #34 | Наверх | Cообщить модератору

2. "Facebook открыл код JavaScript-движка Hermes"  +45 +/
Сообщение от Аноним (2), 12-Июл-19, 22:14 
Астрологи объявили неделю легковесных движков javascript.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

35. "Facebook открыл код JavaScript-движка Hermes"  –2 +/
Сообщение от Аноним (35), 13-Июл-19, 18:14 
А кто объявил год баянов на опеннете?
Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

39. "Facebook открыл код JavaScript-движка Hermes"  +1 +/
Сообщение от Ilya Indigo (ok), 13-Июл-19, 19:52 
3-ие Герои всегда живы!
Их нельзя убить.
Ответить | Правка | ^ к родителю #35 | Наверх | Cообщить модератору

44. "Facebook открыл код JavaScript-движка Hermes"  +1 +/
Сообщение от Вторые (?), 14-Июл-19, 05:15 
Это же уже и во вторых вроде было?
Ответить | Правка | ^ к родителю #39 | Наверх | Cообщить модератору

46. "Facebook открыл код JavaScript-движка Hermes"  +1 +/
Сообщение от anonymoussssss (?), 14-Июл-19, 11:37 
Это было во всех частях
Ответить | Правка | ^ к родителю #44 | Наверх | Cообщить модератору

3. "Facebook открыл код JavaScript-движка Hermes"  +17 +/
Сообщение от segesg (?), 12-Июл-19, 22:23 
>нативных JavaScript-приложений

Оксюморон

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

4. "Facebook открыл код JavaScript-движка Hermes"  +1 +/
Сообщение от Урри (?), 12-Июл-19, 22:46 
Астрологи объявили неделю JS-велосипедов.
Количество постов с JS движками увеличилось вдесятеро.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

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

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

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

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

7. "Facebook открыл код JavaScript-движка Hermes"  +2 +/
Сообщение от Аноним (7), 13-Июл-19, 00:12 
JS-движков что-то как грязи. Почему так?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

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

41. "Facebook открыл код JavaScript-движка Hermes"  +1 +/
Сообщение от Аноним (41), 13-Июл-19, 21:43 
Почему бы js-говнокодерам не научиться оптимизировать свой говнокод?
Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

42. "Facebook открыл код JavaScript-движка Hermes"  –1 +/
Сообщение от InuYasha (?), 13-Июл-19, 21:52 
А это вообще возможно с JavaScript?
Ответить | Правка | ^ к родителю #41 | Наверх | Cообщить модератору

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

Спасибо!)

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

36. "Facebook открыл код JavaScript-движка Hermes"  +1 +/
Сообщение от Аноним (35), 13-Июл-19, 18:16 
> Психопомп

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

Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

9. "Facebook открыл код JavaScript-движка Hermes"  +5 +/
Сообщение от YetAnotherOnanym (ok), 13-Июл-19, 00:59 
> нативных JavaScript-приложений
> Код написан на языке C++

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

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

11. "Facebook открыл код JavaScript-движка Hermes"  +15 +/
Сообщение от Ananas (?), 13-Июл-19, 01:37 
Изыди, Еретик.
Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

27. "Facebook открыл код JavaScript-движка Hermes"  –1 +/
Сообщение от Leo (??), 13-Июл-19, 11:28 
Зачет )))))
Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

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

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

Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

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

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

Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

24. "Facebook открыл код JavaScript-движка Hermes"  +2 +/
Сообщение от Аноним (24), 13-Июл-19, 11:10 
Ты так пишешь словно java или js аварийно не завершаются.
И есть qml, который быстрее джавы и js, писался специально под интерфейсики и гораздо проще плюсов, что даже ты осилишь.
Ответить | Правка | ^ к родителю #22 | Наверх | Cообщить модератору

12. "Facebook открыл код JavaScript-движка Hermes"  +1 +/
Сообщение от Аноним (12), 13-Июл-19, 01:47 
Сколько уже раз они переизобрели JVM со всеми этими WebAssembly и проч.?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

17. "Facebook открыл код JavaScript-движка Hermes"  +1 +/
Сообщение от Онаним (?), 13-Июл-19, 08:31 
Да потому что это овнище как ни оптимизируй, всё равно на выходе лажа получается.
И лучше более-менее универсального V8 для этого овнища пока что не придумано.
Ответить | Правка | ^ к родителю #12 | Наверх | Cообщить модератору

40. "Facebook открыл код JavaScript-движка Hermes"  +2 +/
Сообщение от Андрей (??), 13-Июл-19, 20:08 
Каждый любитель должен написать свой мессенджер. А профессионалы - свой эффективный движок JS.
Ответить | Правка | ^ к родителю #17 | Наверх | Cообщить модератору

14. "Facebook открыл код JavaScript-движка Hermes"  +6 +/
Сообщение от Аноним (14), 13-Июл-19, 03:19 
>JS
>Facebook
>Android
>Microsoft Office

Кккомбо!

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

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

20. "Facebook открыл код JavaScript-движка Hermes"  +3 +/
Сообщение от Аноним (20), 13-Июл-19, 09:29 
Вёб-макак допустили до программирования приложений, развелось интерпретируемых/JIT языков как грязи, а сишники не могут найти работу.
Ответить | Правка | ^ к родителю #16 | Наверх | Cообщить модератору

21. "Facebook открыл код JavaScript-движка Hermes"  –1 +/
Сообщение от Аноним (13), 13-Июл-19, 09:48 
сишников не могут найти работодатели, их нет нифига. все или уже работают, или "ok &= a" вместо "ok = ok && a" пишут
Ответить | Правка | ^ к родителю #20 | Наверх | Cообщить модератору

29. "Facebook открыл код JavaScript-движка Hermes"  +/
Сообщение от KonstantinB (ok), 13-Июл-19, 13:29 
Плохо ищут. Либо плохо учили английский и не там ищут. На мировом рынке, несмотря не все, спрос превышает предложение.
Ответить | Правка | ^ к родителю #20 | Наверх | Cообщить модератору

23. "Facebook открыл код JavaScript-движка Hermes"  +1 +/
Сообщение от Аноним (23), 13-Июл-19, 10:06 
Facebook, не пробовал нанимать нормальных JS-программистов, чтобы не писали тонны говно-кода, который еле шевелится?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

25. "Facebook открыл код JavaScript-движка Hermes"  –1 +/
Сообщение от Аноним (24), 13-Июл-19, 11:13 
Зачем нужны js программисты, если есть нормальные c++/go/rust разработчики? Да даже питон и проще и быстрее.
Ответить | Правка | ^ к родителю #23 | Наверх | Cообщить модератору

26. "Facebook открыл код JavaScript-движка Hermes"  +1 +/
Сообщение от vitalif (ok), 13-Июл-19, 11:27 
Питон тормознее раз в 10, чем v8
Ответить | Правка | ^ к родителю #25 | Наверх | Cообщить модератору

32. "Facebook открыл код JavaScript-движка Hermes"  –1 +/
Сообщение от Аноним (32), 13-Июл-19, 14:58 
>Питон тормознее раз в 10, чем v8

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

Ответить | Правка | ^ к родителю #26 | Наверх | Cообщить модератору

45. "Facebook открыл код JavaScript-движка Hermes"  +/
Сообщение от noname14рпаргнпр (?), 14-Июл-19, 07:51 
да, но
python -> cython -> c
профит
Ответить | Правка | ^ к родителю #32 | Наверх | Cообщить модератору

37. "Facebook открыл код JavaScript-движка Hermes"  +/
Сообщение от Аноним (37), 13-Июл-19, 18:40 
раз в 80, чем v8
Ответить | Правка | ^ к родителю #26 | Наверх | Cообщить модератору

38. "Facebook открыл код JavaScript-движка Hermes"  +/
Сообщение от Аноним84701 (ok), 13-Июл-19, 19:27 
> раз в 80, чем v8

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

Ответить | Правка | ^ к родителю #37 | Наверх | Cообщить модератору

49. "Facebook открыл код JavaScript-движка Hermes"  +/
Сообщение от Антон (??), 14-Июл-19, 23:28 
зачем питон если есть js?
Ответить | Правка | ^ к родителю #25 | Наверх | Cообщить модератору

28. "Facebook открыл код JavaScript-движка Hermes"  +/
Сообщение от northbear (??), 13-Июл-19, 12:36 
Глядя на убогое глюкавое поделие под названием Facebook что-то другое в их исполнении смотреть желания не возникает. Каким-то удивительным образом React у них получился норм. Но всё остальное...
  
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

47. "Facebook открыл код JavaScript-движка Hermes"  +/
Сообщение от Аноним (47), 14-Июл-19, 12:36 
В каком месте React норм? После того как Яндекс стал переводить свои сервисы на него, пользоваться стало невозможно. Открой Маркет или из любопытства загляни на главную поисковика и попробуй покликать. Ничем не лучше тормознутого Facebook, на который любят все ссылаться.
Ответить | Правка | ^ к родителю #28 | Наверх | Cообщить модератору

55. "Facebook открыл код JavaScript-движка Hermes"  +/
Сообщение от Аноним (55), 30-Июл-19, 08:43 
ну instagram - вполне себе няшный и более менее минималистичный (по сравнению с facebook)
Ответить | Правка | ^ к родителю #28 | Наверх | Cообщить модератору

31. "Facebook открыл код JavaScript-движка Hermes"  +/
Сообщение от Аноним (31), 13-Июл-19, 13:35 
Наконец-то!
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

43. "Facebook открыл код JavaScript-движка Hermes"  +/
Сообщение от InuYasha (?), 13-Июл-19, 21:55 
Hermes vs. QuickJS vs. v8?

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

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

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

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

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

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

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

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру