למה לצפות ממנוע הרמס ב-React Native 0.70

למה לצפות ממנוע הרמס ב-React Native 0.70
קוראים כמוך עוזרים לתמוך ב-MUO. כאשר אתה מבצע רכישה באמצעות קישורים באתר שלנו, אנו עשויים להרוויח עמלת שותף.

React Native 0.70 יצא, והרמס הוא מנוע JavaScript החדש המוגדר כברירת מחדל המשלוח עם עדכון זה. הנה למה לצפות מהרמס וכמה מהתכונות שישפיעו על הביצועים של אפליקציית React Native שלך.





כיצד להסיר מגן מסך

מה זה הרמס?

Hermes הוא מנוע JavaScript בקוד פתוח המייעל את הביצועים במהלך השקות של יישומי iOS ואנדרואיד על ידי הידור מראש של קוד JavaScript לקוד בתים יעיל והפחתת השימוש בזיכרון היישומים.





איפור של סרטון היום

עדכון גרסאות מקוריות ישנות יותר של React כדי לתמוך בהרמס

ביישומי React Native הפועלים על 0.70 יופעל הרמס כברירת מחדל. עבור יישומי React Native ישנים יותר, מבנה של הרמס נשלח עם כל גרסה של React Native החל מגרסה 0.60.4 עבור Android build וגרסה 0.64.0 עבור iOS. הגרסאות התואמות מבטלות את הסיכון לאי התאמה של תלות באפליקציית React Native שלך.





כדי להפעיל את Hermes בגרסאות הישנות יותר של React Native, תצטרך להוסיף תצורה כלשהי ליישומי Android ו- iOS שלך.

ב-Android, ערוך את שלך android/app/build.gradle קוֹבֶץ:



project.ext.react = [ 
entryFile: "index.js",
enableHermes: true // clean and rebuild if changing
]

ב-iOS, אתה מבצע את השינויים הבאים שלך ios/Podfile :

use_react_native!( 
:path => config[:reactNativePath],
:hermes_enabled => true
)

iOS דורשת ממך להתקין תרמילים של הרמס לאחר קביעת הגדרות.





הפעל את הפקודה הבאה כדי להתקין את הפודים:

cd ios && pod install 

הפעלת הרמס עם אקספו

אתה יכול גם להשתמש במנוע Hermes עבור יישומי React Native שנבנו או פועלים באמצעות Expo. ספריית Expo תומכת ב-Hermes מגרסה 42 של SDK ב-Android ו-SDK בגרסה 43 ב-iOS ועד לגרסה הנוכחית 0.70. חשוב לציין שיישומים עצמאיים אינם יכולים להריץ את Hermes אלא אם כן נבנו באמצעות Expo Application Services Build.





כדי להפעיל את הרמס ביישום React Native, ערוך את שלך app.json קוֹבֶץ:

{ 
"expo": {
"jsEngine": "hermes"
}
}

כעת האפליקציה שלך שנבנתה עם Expo Application Services תאפשר להרמס כמנוע JavaScript שלה.

מיטוב ביצועי הרמס עבור אפליקציות מקוריות של React

רוב מנועי JavaScript מנתחים את כל קוד המקור של JavaScript באמצעות מערכת הידור JIT (Just in Time). מערכת JIT מאטה את הביצוע מכיוון שהמכשיר שלך חייב להמתין לסיום תהליך ההידור כולו. הרמס משתמש בגישת קומפילציה מראש (AOT), ומעבירה את רוב עבודת מנוע JavaScript הכבדה לבניית זמן.

הרמס משפיע בעיקר על שלושה מדדים של ביצועי אפליקציה: האפליקציה TTI (Time to Interactive), גודל בינארי ושימוש בזיכרון.

נגן המדיה הטוב ביותר עבור Windows XP

זמן לאינטראקטיב

ה-TTI הוא הזמן שלוקח לאפליקציה לטעון ולתמוך באינטראקציה של משתמשים כמו גלילה או הקלדה. Hermes משפר את ה-TTI הממוצע עבור יישומי React Native בהשוואה למנועי JavaScript אחרים.

ההפחתה הזו ב-TTI נובעת מכך שהרמס לא מריץ מהדר JIT.

גודל בינארי

הגודל הבינארי הוא הגודל של יישום React Native המצורף. אפליקציות אנדרואיד משתמשות ב- פורמט קובץ APK , בעוד אפליקציות iOS משתמשות בפורמט שאפל קוראת ל-IPA. השימוש ב-Hermes מקטין באופן משמעותי את גודל האפליקציה במכשירי אנדרואיד.

שימוש בזיכרון

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

הכאב עצמו מתורגם לאנגלית

איתור באגים React Native עם Hermes ו-Chrome DevTools

Hermes מגיע עם חוויה חדשה לאיתור באגים ביישומי React Native הפועלים על אמולטור, סימולטור או מכשיר פיזי באמצעות Expo. Hermes תומך באיתור באגים ביישומי React Native באמצעות פרוטוקול Inspector של Chrome DevTools. אתה לא צריך לבלבל את זה עם מסורתי איתור באגים ב-JavaScript באמצעות קונסולת הדפדפן .

כדי להגדיר את Chrome לנפות באגים ביישומי Hermes, בצע את השלבים הבאים.

  1. נווט אל chrome://inspect בתוך דפדפן Chrome שלך.
  2. הקלק על ה הגדר לַחְצָן.
  3. בתוך המודאל שעל המסך, הזן את כתובת השרת עבור מכלול המטרו שמריץ את אפליקציית React Native שלך ​​ולחץ בוצע .

כעת תוכל לנפות באגים ביישום React Native שלך ​​באמצעות קישור בדיקת היעד של הרמס.

מדוע הרמס מותאם ל-React Native בלבד

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

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