תכונות ושיפורים חדשים ב- .Net Framework 4.5

Microsoft .Net Framework הבשיל הרבה בשנים האחרונות. תכונות ושיפורים חדשים הוצגו בשפע כדי לייעל אותו ולהפוך אותו למהיר, מאובטח, יציב יותר וביצועים גבוהים. במאמר זה ברצוני להציג מבט ממעוף הציפור על השיפורים המשמעותיים ב- .Net Framework 4.5.x.

יוצאי הדופן החריגים מהזיכרון

זו שגיאה אימתנית ויכולה להפוך לסיוט עבורך. חריגים מחוץ לזיכרון יכולים להפסיק את זרימת השליטה ביישום שלך גם כאשר יש לך מספיק זיכרון פיזי מותקן. אתה צוחק? אין סיכוי! תן לי להסביר מדוע זה יכול להתרחש וכיצד טופלה בעיה זו ב- .Net Framework 4.5.

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

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

דחיסה של ערימת עצמים גדולים לפי דרישה

דחיסת הערימה עם אובייקט גדול לפי דרישה הוצגה לאחרונה בכדי לדחוס את הערימה ולמנוע פיצול ערימה. דחיסה מרמזת על דחיסת כל חורי הזיכרון המפוזרים הללו לבלוק אחד. תכונה זו זמינה (על פי דרישה בלבד) מ. Net Framework 4.5.1 כדי להקל על בעיות החריגה מחוץ לזיכרון. כדי להפעיל תכונה זו, עליך להגדיר את המאפיין LargeObjectHeapCompactionMode.

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

תמיכה בגמישות חיבורי ADO.Net

אתה כבר לא צריך לכתוב קוד כדי ליישם גמישות בחיבור כדי ליצור חיבורים סרק או שבורים. .Net Framework 4.5.1 מגיע עם תכונה זו מובנית כדי ליצור מחדש חיבורים שבורים למסד הנתונים.

זמן התחלה משופר: אופטימיזציה לפרופיל

אופטימיזציה לפרופיל היא תכונה שהוצגה ב- .Net Framework 4.5 שמצמצמת את זמן ההפעלה של היישום. איך זה עובד? פרופיל הוא קובץ שמכיל את השיטות שהיישום יזדקק לו בזמן שהוא מתחיל. כאשר האפליקציה מתחילה, Just In Time Compiler (JIT) פועל בשרשור רקע ובמעבדים מרובים כדי ליצור קוד מקורי מקוד ה- IL.

שיפורים באיסוף זבל: הציג GC שרת

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

עם .Net Framework 4.5 זה כבר לא נושא; שרת GC הוצג לאחרונה בכדי להקל על ניקוי אובייקטים מדור שני באמצעות חוט רקע, ולפיכך למזער את העומס על שרשור ה- GC הראשי מכיוון ששרשורי היישום מושעים בתדירות נמוכה הרבה יותר. עם. Net Framework 4.5, איסוף אשפה ברקע נתמך הן בשרת והן בתחנת העבודה GC. איסוף אשפה בו זמנית נתמך גם כעת; חוט ייעודי מבצע את איסוף האשפה בעת הצורך.

שיפורים בולטים ב- .Net Framework 4.5.2

מיקרוסופט פרסמה לאחרונה את .Net Framework 4.5.2. המהדורה הוכרזה על ידי מיקרוסופט בבלוג .Net Framework. הנה הקישור: //blogs.msdn.com/b/dotnet/archive/2014/05/05/announcing-the-net-framework-4-5-2-release.aspx

מלבד שיפורים בפרופיל ובאיתור באגים, ישנם שיפורים בולטים ב- ASP.Net ב- .Net Framework 4.5.2. כעת תוכל להשתמש בשיטות HostingEnvironment.QueueBackgroundWorkItem כדי לתזמן משימות רקע קטנות באופן אסינכרוני. כדי לבדוק ולשנות את כותרות התגובה וקודי התגובה, תוכלו להשתמש בשיטות HttpResponse.AddOnSendingHeaders ו- HttpResponseBase.AddOnSendingHeaders. תוכל לעיין במאמר זה של MSDN לקריאה נוספת: //msdn.microsoft.com/en-us/library/ms171868%28v=vs.110%29.aspx

מה עולה בהמשך?

מיקרוסופט פרסמה גרסת תצוגה מקדימה של .Net Framework 4.6 בנובמבר האחרון. תוכל להוריד עותק של .Net Framework 4.6 מכאן: //www.microsoft.com/en-us/download/details.aspx?id=44928

ענקית התוכנה גם הודיעה כי תבטל את תמיכתה בגרסאות .Net Framework 4.x עד 4.5.1 לאחר ינואר 2016. קראו עוד על כך כאן: //blogs.msdn.com/b/dotnet/archive/2014/08 /07/moving-to-the-net-framework-4-5-2.aspx