מה זה JIT בג'אווה? - הבנת יסודות Java



מהדר Just-In-Time הוא אחד החלקים האינטגרליים בסביבת Runtime Java. מאמר זה על JIT ב- Java יגיד לך כיצד מהדר זה משפר את הביצועים של יישומי Java.

כל שפת תכנות משתמשת במהדר כדי להמיר את קוד השפה ברמה גבוהה לקוד בינארי ברמת המכונה, מכיוון שהמערכת מבינה רק את הקוד הבינארי. בהתבסס על סוג שפת התכנות, המהדר שונה. עכשיו מדברים על , הוא משתמש במהדר המדהים הזה שנקרא JIT (Just-in-Time) בג'אווה . בלוג זה יספר לכם הכל אודות JIT Java Compiler.

להלן הנושאים המכוסים במאמר זה:





אז בואו נתחיל!

מהדר Java JIT - סקירה כללית

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



צלול עמוק לתוך JIT בג'אווה

  • קוד בתים הוא הפוטנציאל העיקרי בסביבת ה- WORA של Java (כתוב פעם אחת, הפעל בכל מקום). המהירות של יישום Java תלוי בדרך בה הופך קוד בתים לקוד המחשב המקורי. ניתן לפרש את קוד הביס או לקמפל אותו לקוד מקורי או לבצע אותו ישירות על המעבד. אך אם מפרשים את קוד הביס, הוא משפיע ישירות על מהירות היישום.

  • על מנת להאיץ את הביצועים, מהדר JIT מתקשר עם JVM בזמן הביצוע על מנת לחבר רצפי קוד בתים לקוד מכונה מקורי. בעיקרון, כאשר משתמשים ב- JIT Compiler, הקוד המקורי מתבצע בקלות על ידי החומרה בהשוואה ל- JVM Interpreter. בכך יהיה רווח עצום במהירות הביצוע.

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



עכשיו שאתה מכיר את היסודות של JIT Compiler, בוא נתקדם ונבין את פעולתו.

כיצד להשתמש לוגר ב - Java

עבודה של JIT Compiler בג'אווה

מהדר JIT מאיץ את הביצועים של יישומי Java בזמן הריצה. כמו שג'אווה היא , זה מורכב מ . ביסודו של דבר, הוא מהווה קוד בתים שהוא בלתי תלוי בפלטפורמה ו- eהוצא להורג על ידי ה- JVM בארכיטקטורות מגוונות.

כיצד ליצור מערך אובייקטים בג'אווה

זרימת עבודה:

בתרשים להלן מתואר כיצד העבודה בפועל של אוסף מתרחשת בסביבת Java Runtime.

מהדר JIT - JIT בג

  1. כשאתה מקודד את , JRE משתמש במהדר javac כדי לקמפל את הרמה הגבוהה קוד מקור לקוד בתים . לאחר מכן, JVM טוען את קוד הבייט בזמן הריצה וממיר לקוד בינארי ברמת המכונה להמשך ביצוע באמצעות מתורגמן.

  2. כפי שכבר ציינתי לעיל, פרשנות של קוד בתים ג'אווה מפחיתה את הביצועים בהשוואה ליישום מקורי. זה המקום בו JIT Compiler מסייע להעלאת הביצועים על ידי קומפילציה של קוד בתים לקוד מכונה מקורי 'בדיוק בזמן' לרוץ.

  3. מהדר JIT מופעל ומופעל כברירת מחדל כאשר מופעלת שיטה בג'אווה. כאשר קובץ שיטה, Java Virtual Machine מכריזה ישירות על הקוד המהולל של השיטה מבלי לפרש אותו. לפיכך, הוא אינו דורש שימוש רב בזיכרון וזמן מעבד. זה בעצם מאיץ את הביצועים של יישום Java Native.

אז, ככה זה עובד. עכשיו בואו ונעמיק במאמר זה ונבין את היבטי האבטחה של JIT Compiler בג'אווה.

תצלום כיצד ליצור סט

היבטים ביטחוניים של JIT בג'אווה

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

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

יתרונות וחסרונות של JIT בג'אווה

יתרונות :

  1. קוד Java שכתבת שנים לפני כן יפעל מהר יותר גם היום ומשפר את הביצועים של תוכניות Java.

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

חסרונות:

  1. מגביר את המורכבות של .

  2. תוכניות עם פחות קוד אינן מרוויחות עם אוסף Just-In-Time.

זה מביא אותנו לסוף מאמר זה על JIT בג'אווה. אני מקווה שמצאת את זה אינפורמטיבי.

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

יש לך שאלה עבורנו? אנא הזכיר זאת במדור התגובות במאמר זה 'JIT ב- Java' ונחזור אליך בהקדם האפשרי.