Фацебоок опен соурце Хермес ЈаваСцрипт мотор

Фацебоок лагани ЈаваСцрипт мотор отвореног кода Хермес, оптимизован за покретање апликација заснованих на оквиру Реацт Нативе на Андроид платформи. Хермес подршка уграђени у Реацт Нативе-у почевши од данашњег издања 0.60.2. Пројекат је дизајниран да реши проблеме са дугим временом покретања за изворне ЈаваСцрипт апликације и значајном потрошњом ресурса. Код написао у Ц++ и дистрибуира се под МИТ лиценцом.

Међу предностима коришћења Хермеса је смањење времена покретања апликације, смањење потрошње меморије и смањење величине апликације. Када користите В8, фазе које одузимају највише времена су фазе рашчлањивања изворног кода и његовог компајлирања у ходу. Хермес доводи ове кораке у фазу израде и омогућава испоруку апликација у облику компактног и ефикасног бајткода.

За директно извршавање апликације користи се виртуелна машина развијена у оквиру пројекта са сакупљачем смећа СемиСпаце, који дистрибуира блокове само по потреби (Он-деманд), подржава померање и дефрагментацију блокова уз ослобађање слободне меморије оперативном систему, без периодичног скенирања садржаја целе гомиле.

ЈаваСцрипт обрада је подељена у неколико фаза. Прво, изворни текстови се рашчлањују и генерише се средњи приказ кода (Хермес ИР), на основу репрезентације ССА (Статични појединачни задатак). Затим се средња репрезентација обрађује у оптимизатору, који примењује технике напредне статичке оптимизације да трансформише примарни међукод у ефикаснију међурепрезентацију уз очување оригиналне семантике програма. У последњој фази се генерише бајт код за регистровану виртуелну машину.

У мотору подржан од део ЕЦМАСцрипт 2015 ЈаваСцрипт стандарда (крајњи циљ је да га у потпуности подржи) и обезбеђује компатибилност са већином постојећих Реацт Нативе апликација. Хермес је одлучио да не подржава локално извршавање евал(), са изјавама, рефлексијом (Рефлецт и Проки), Интл АПИ-јем и неким ознакама у РегЕкп-у. Да бисте омогућили Хермес у апликацији Реацт Нативе, само додајте опцију „енаблеХермес: труе“ у пројекат. Такође је могуће направити Хермес у ЦЛИ режиму, омогућавајући вам да извршавате произвољне ЈаваСцрипт датотеке из командне линије. Доступан је режим лење компилације за отклањање грешака, који вам омогућава да не компајлирате ЈаваСцрипт сваки пут током процеса развоја, већ да генеришете бајткод у ходу већ на уређају.

Истовремено, Фацебоок не планира да прилагођава Хермес за Ноде.јс и друга решења, фокусирајући се само на мобилне апликације (АОТ компилација уместо ЈИТ-а је најоптималнија у контексту мобилних система, који имају ограничену РАМ меморију и спорији Фласх). Прелиминарно тестирање перформанси које су спровели запослени у Мицрософту откривенода када користите Хермес, апликација Мицрософт Оффице за Андроид постаје доступна за употребу за 1.1 секунду. након покретања и троши 21.5МБ РАМ-а, док је када се користи В8 мотор потребно 1.4 секунде да се покрене, а потрошња меморије је 30МБ.

Додатак: Фејсбук опубликовал сопствене резултате тестирања. Када користите Хермес са апликацијом МаттерМост, време почетка доступности за рад (ТТИ, Тиме То Интерацт) је смањено са 4.30 на 2.01 секунду, величина АПК пакета је смањена са 41 на 22 МБ, а потрошња меморије са 185 на 136 МБ.

Извор: опеннет.ру

Додај коментар