פייסבוק פרסמה את קוד המקור של מנוע ה- JavaScript של הרמס

הרמס

פייסבוק פתחה את קוד המקור עבור מנוע ה- JavaScript הקל של הרמס, מותאם להפעלת יישומים מבוססי מסגרת React על פלטפורמת Android.

מהנדס התוכנה של פייסבוק מארק הורוביץ חשף את מנוע ה- JavaScript החדש בכנס שרשרת התגובה ב -2019 בפורטלנד, אורגון. הרמס הוא כלי מפתח חדש שמתמקד בשיפור ביצועי הפעלת האפליקציות באותו אופן שבו פייסבוק כבר עושה לאפליקציות שלה ולהפוך אפליקציות ליעילות יותר בסמארטפונים בכניסה.

על הרמס

התמיכה של הרמס מובנית ב- React Native החל מגרסה 0.60.2 של ימינו. הפרויקט מוכר כפתרון בעיות עם זמני הפעלה ארוכים ליישומי JavaScript מקוריים וצריכת משאבים משמעותית. הקוד כתוב ב- C ++ ומופץ ברישיון MIT.

מיתרונות השימוש בהרמס, ישנה צמצום זמן התחלת היישום, ירידה בצריכת הזיכרון וירידה בגודל היישום.

האצת פניות לְהַשִׁיק מושגת על ידי שימוש בקומפילציה מקדימה בקוד Byte קומפקטי ויעיל בשלב ההידור.

כדי להפעיל את היישום ישירות, משתמשים במכונה וירטואלית עם אספן האשפה SemiSpace שפותח כחלק מהפרויקט. עם V8, הארוך ביותר הוא הצעדים לנתח את קוד המקור ולהרכיב אותו בזמן.

מנוע הרמס לוקח את השלבים הללו לשלב האוסף ומאפשר מסירת יישומים בצורה של קוד בתים מותאם.

עיבוד JavaScript מחולק למספר שלבים. בתחילה נותח את קוד המקור ונוצר ייצוג קוד הביניים (Hermes IR), בהתבסס על ייצוג ה- SSA (Static Unique Assignment).

בנוסף, ייצוג הביניים מעובד במיטוב, המשתמש בטכניקות אופטימיזציה סטטיות יזומות כדי להמיר את קוד הביניים העיקרי לייצוג ביניים יעיל יותר, תוך שמירה על הסמנטיקה של התוכנית המקורית.

לבסוף בשלב האחרון נוצר קוד הבייט עבור המחשב הווירטואלי הרשום.

בהדגמה, מארק הורוביץ הראה כי יישום React Native עם הרמס הוא נטען במלואו כשתי שניות מהר יותר מאותו יישום שהועמס ללא הרמס.

מארק הורוביץ דאג לכך שהרמס יקטין גם את גודל ה- APK באמצע 41MB של אפליקציית React Native המאוחסנת וחיסל רבע משימוש בזיכרון של האפליקציה.

במילים אחרות, עם הרמס, מפתחים יכולים לגרום למשתמשים לקיים אינטראקציה מהירה יותר עם יישום עם פחות מכשולים, כגון זמני הורדה איטיים והגבלות הנגרמות על ידי יישומים מרובים המשתפים משאבי זיכרון מוגבלים, כגון: במיוחד בקלט טלפונים ברמה.

המנוע תומך בחלק מהתקן ECMAScript 2015 JavaScript (התמיכה המלאה שלו היא המטרה הסופית) ותואם לרוב היישומים הקיימים של React Native. בהרמס הוחלט שלא לתמוך בהטלה מקומית של eval (), ביטויים "עם", השתקפויות (Reflect ו- Proxy), API API של Intl וכמה דגלים ב- RegExp.

כדי לאפשר את הרמס ביישום React Native, פשוט הוסף לפרויקט את האפשרות "enableHermes: true". ניתן גם לקמפל את הרמס במצב ממשק CLI, המאפשר לבצע קבצי JavaScript שרירותיים משורת הפקודה.

יחד עם זאת, פייסבוק לא מתכננת להתאים את הרמס עבור Node.js ופתרונות אחרים, ומתמקדת רק ביישומים ניידים (קומפילציה של AOT במקום JIT היא אופטימלית יותר בהקשר לאפליקציות סלולריות מבוססות React Native).

מיקרוסופט ערכה בדיקות ביצוע ראשוניות והראתה כי בעת שימוש בהרמס, יישום Microsoft Office for Android זמין לעבודה תוך 1.1 שניות.

לאחר ההשקה והיא צורכת 21.5 מגה-בייט של זיכרון RAM, תוך שימוש במנוע ה- V8, 1.4 שניות מושקעות בהשקה, וצריכת הזיכרון היא 30 מגה-בייט.


השאירו את התגובה שלכם

כתובת הדוא"ל שלך לא תפורסם. שדות חובה מסומנים *

*

*

  1. אחראי לנתונים: מיגל אנחל גטון
  2. מטרת הנתונים: בקרת ספאם, ניהול תגובות.
  3. לגיטימציה: הסכמתך
  4. מסירת הנתונים: הנתונים לא יועברו לצדדים שלישיים אלא בהתחייבות חוקית.
  5. אחסון נתונים: מסד נתונים המתארח על ידי Occentus Networks (EU)
  6. זכויות: בכל עת תוכל להגביל, לשחזר ולמחוק את המידע שלך.