NGen

NGen (או Native Image Generator) הוא שירות הידור "לפני-הזמן" של NET Framework., הוא מאפשר יצירת ספרייה בינארית של CLI לעבור הידור במקום לתת ל-CLR לבצע  בזמן ריצה. במקרים מסוימים ההידור יהיה מהיר משמעותית מאשר ההידור של ה-JIT.

NGen מייצר קוד בשפת מכונה עבור הסביבה הנוכחית (מערכת הפעלה). פעולה כזו מוזילה (במונחי זמן ריצה) את פעולת ה-JIT, על חשבון ניידות הספרייה ותפישת מקום על הדיסק.

אם ספריית Ngen תרוץ בסביבה לא מתאימה, NET Framework. יחזור אוטומטית לפעול עם ה-JIT. כאשר מריצים NGen על קובץ בינארי, הפלט מושם בזיכרון מטמון Native Image Cache לשימוש על ידי כל ספריות ה-CLI האחרות, דבר זה מאפשר לדוגמה להשתמש בסיפריות NGen לעיבוד CLI בזמן התקנה ובכך לחסוך משאבי מעבד בזמן ריצה, כאשר אפליקציה המשתמשת באותו קוד תנסה להפעיל מתודה מסוימת באותו קובץ בינארי.

NGen אמור לסייע לספרייה לרוץ מהר יותר על ידי ייתור השימוש ב-JIT בזמן ריצה, אולם עובדה זו לא תמיד משפרת את הביצועים בגלל שאופטימיזציות מסוימות יכולות לקרות רק בזמן הידור של ה-JIT (לדוגמה, אם מהדר ה-JIT יודע שהקוד רץ במוד של full trust, אזי הוא ידלג על חלק מבדיקות האבטחה היקרות). לאור עובדה זו הגיוני לבדוק אפקטיביות שימוש ב-NGen כאשר מריצים השוואת ביצועים עם ובלי הידור של ה-NGen, עבור אפליקציה מסוימת.

קטגוריה:.NET