คุณลักษณะใหม่และการปรับปรุงใน. Net Framework 4.5

Microsoft .Net Framework เติบโตเต็มที่ในช่วงไม่กี่ปีที่ผ่านมา มีการนำฟีเจอร์และการปรับปรุงใหม่ ๆ มาใช้เพื่อเพิ่มประสิทธิภาพและทำให้รวดเร็วปลอดภัยเสถียรมากขึ้นและมีประสิทธิภาพสูง ในบทความนี้ฉันต้องการนำเสนอมุมมองจากมุมสูงของการปรับปรุงที่สำคัญใน. Net Framework 4.5.x.

ข้อยกเว้นจากหน่วยความจำที่น่ากลัว

นี่เป็นข้อผิดพลาดที่น่ากลัวและอาจกลายเป็นฝันร้ายสำหรับคุณได้ ข้อยกเว้นหน่วยความจำไม่เพียงพอสามารถยุติขั้นตอนการควบคุมแอปพลิเคชันของคุณได้แม้ว่าคุณจะติดตั้งหน่วยความจำกายภาพเพียงพอแล้วก็ตาม คุณล้อเล่น? ไม่มีทาง! ให้ฉันอธิบายว่าเหตุใดจึงสามารถเกิดขึ้นได้และปัญหานี้ได้รับการแก้ไขอย่างไรใน. Net Framework 4.5

อ็อบเจ็กต์ที่สร้างโดยสภาวะแวดล้อมที่ถูกจัดการจะถูกเก็บไว้ในฮีป ในช่วงระยะเวลาหนึ่งฮีปอาจแตกกระจายเนื่องจากการสร้างและการกำจัดวัตถุ Fragmentation หมายถึงรูหน่วยความจำ (หน่วยความจำว่าง) ที่กระจัดกระจาย ในกรณีเช่นนี้คุณมักจะสังเกตเห็นข้อยกเว้นหน่วยความจำไม่เพียงพอหากแอปพลิเคชันของคุณใช้หน่วยความจำจำนวนมากและเนื่องจากรันไทม์จะไม่สามารถจัดสรรพื้นที่ได้เมื่อและหากจำเป็นแม้ว่าจะมีพื้นที่ว่างก็ตาม

ฟังดูแปลก ๆ ? ผลรวมของรูหน่วยความจำอาจเพียงพอสำหรับคำขอนี้ แต่เนื่องจากรูหน่วยความจำเหล่านี้กระจัดกระจายรันไทม์จึงไม่สามารถใช้งานได้

การบดอัดของกองวัตถุขนาดใหญ่ตามความต้องการ

การบดอัดฮีปออบเจ็กต์ขนาดใหญ่ตามความต้องการได้รับการแนะนำใหม่เพื่อกระชับฮีปและกำจัดการแยกส่วนของฮีป การบดอัดหมายถึงการบีบอัดช่องหน่วยความจำที่กระจัดกระจายเหล่านี้ให้เป็นบล็อก คุณลักษณะนี้พร้อมใช้งาน (ตามความต้องการเท่านั้น) จาก. Net Framework 4.5.1 เพื่อลดปัญหาข้อยกเว้นหน่วยความจำไม่เพียงพอ ในการเปิดใช้งานคุณสมบัตินี้คุณต้องตั้งค่าคุณสมบัติ LargeObjectHeapCompactionMode

อนึ่งคุณสมบัตินี้สามารถมีหนึ่งในสองค่า: ค่าเริ่มต้นและ CompactOnce อดีต if set จะละเว้นการบดอัดของฮีปอ็อบเจ็กต์ขนาดใหญ่ในระหว่างวัฏจักร GC หากคุณใช้อย่างหลังฮีปวัตถุขนาดใหญ่จะถูกบีบอัดในรอบถัดไป

รองรับ ADO.Net Connection Resiliency

คุณไม่จำเป็นต้องเขียนโค้ดเพื่อใช้ความยืดหยุ่นในการเชื่อมต่ออีกต่อไปเพื่อสร้างการเชื่อมต่อที่ไม่ได้ใช้งานหรือเสีย .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

Microsoft เปิดตัว. Net Framework 4.5.2 เมื่อไม่นานมานี้ Microsoft ประกาศรุ่นนี้ในบล็อก. 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

จะเกิดอะไรขึ้นต่อไป?

Microsoft เปิดตัว. 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 หลังจากเดือนมกราคม 2559 อ่านเพิ่มเติมได้ที่นี่: //blogs.msdn.com/b/dotnet/archive/2014/08 /07/moving-to-the-net-framework-4-5-2.aspx