Ciri dan peningkatan baru dalam .Net Framework 4.5

Microsoft .Net Framework telah matang sejak beberapa tahun kebelakangan ini. Ciri dan peningkatan baru telah banyak diperkenalkan untuk mengoptimumkannya dan menjadikannya cepat, selamat, lebih stabil, dan berkinerja tinggi. Dalam artikel ini saya ingin menyajikan pandangan langsung mengenai peningkatan ketara dalam .Net Framework 4.5.x.

Pengecualian Memori yang ditakuti

Ini adalah kesalahan yang ditakuti dan boleh menjadi mimpi buruk bagi anda. Kekecualian Memori boleh menghentikan aliran kawalan aplikasi anda walaupun anda mempunyai memori fizikal yang mencukupi. Adakah anda bergurau? Tidak boleh! Izinkan saya menerangkan mengapa ini boleh berlaku dan bagaimana masalah ini ditangani dalam .Net Framework 4.5.

Objek yang dibuat oleh persekitaran yang dikendalikan disimpan dalam timbunan. Dalam jangka masa yang lama timbunan mungkin terpecah-pecah kerana penciptaan dan penghapusan objek. Fragmentasi merujuk kepada lubang memori (memori bebas) yang tersebar. Dalam kes seperti ini, anda sering memerhatikan pengecualian Kehabisan Memori jika aplikasi anda menggunakan banyak memori dan kerana masa berjalan tidak dapat memperuntukkan ruang bila dan jika diperlukan walaupun mungkin ada ruang yang tersedia.

Kedengaran pelik? Baiklah, jumlah lubang memori mungkin mencukupi untuk permintaan ini, tetapi kerana lubang memori ini tersebar, waktu proses tidak dapat menggunakannya.

Pemadatan Tumpukan Objek Besar berdasarkan permintaan

Pemadatan timbunan Objek Besar Atas Permintaan baru diperkenalkan untuk memadatkan timbunan dan menghilangkan pecahan timbunan. Pemadatan bermaksud pemadatan semua lubang memori yang tersebar ini menjadi satu blok. Ciri ini tersedia (berdasarkan permintaan sahaja) dari .Net Framework 4.5.1 untuk mengurangkan masalah pengecualian Out of Memory. Untuk mengaktifkan ciri ini, anda perlu menetapkan sifat LargeObjectHeapCompactionMode.

Secara kebetulan, harta tanah ini boleh mempunyai salah satu daripada dua nilai: Default dan CompactOnce. Yang pertama jika ditetapkan akan mengabaikan pemadatan timbunan objek besar semasa kitaran GC. Sekiranya anda menggunakan yang terakhir, timbunan objek besar akan dipadatkan pada kitaran seterusnya.

Sokongan untuk Ketahanan Sambungan ADO.Net

Anda tidak perlu lagi menulis kod untuk melaksanakan ketahanan sambungan untuk mewujudkan sambungan yang terbiar atau terputus. .Net Framework 4.5.1 dilengkapi dengan ciri ini yang dibina untuk membuat semula sambungan yang rosak ke pangkalan data.

Masa permulaan yang lebih baik: Pengoptimuman profil

Pengoptimuman profil adalah ciri yang telah diperkenalkan di .Net Framework 4.5 yang meminimumkan masa permulaan aplikasi. Bagaimana ianya berfungsi? Profil adalah file yang berisi metode yang diperlukan aplikasi pada saat aplikasi dimulai. Semasa aplikasi dimulakan, Just in Time Compiler (JIT) berjalan di latar belakang dan di sebilangan pemproses untuk menghasilkan kod asli dari kod IL.

Peningkatan pengumpulan sampah: Server GC diperkenalkan

Persekitaran yang diuruskan .Net menggunakan pengumpulan sampah untuk membersihkan objek yang tidak digunakan atau tidak dirujuk - objek yang tidak diperlukan lagi. Dalam versi sebelumnya .Net Framework, GC menangguhkan utas aplikasi ketika sibuk membersihkan memori. Ini adalah hambatan prestasi utama kerana aplikasi anda harus menunggu sehingga GC selesai bekerja.

Dengan .Net Framework 4.5 ini tidak lagi menjadi masalah; pelayan GC baru diperkenalkan untuk memudahkan pembersihan objek generasi dua menggunakan utas latar dan, dengan itu, meminimumkan beban pada utas GC utama kerana benang aplikasi lebih jarang digantung. Dengan .Net Framework 4.5, pengumpulan sampah latar belakang disokong di GC pelayan dan stesen kerja. Pengumpulan sampah serentak juga disokong sekarang; utas khas melakukan pengumpulan sampah apabila diperlukan.

Peningkatan ketara dalam .Net Framework 4.5.2

Microsoft mengeluarkan .Net Framework 4.5.2 baru-baru ini. Pelepasan itu diumumkan oleh Microsoft di blog .Net Framework. Inilah pautan: //blogs.msdn.com/b/dotnet/archive/2014/05/05/announcing-the-net-framework-4-5-2-release.aspx

Selain peningkatan profil dan debugging, terdapat peningkatan yang ketara dalam ASP.Net di .Net Framework 4.5.2. Anda kini boleh menggunakan kaedah HostingEnvironment.QueueBackgroundWorkItem untuk menjadualkan tugas latar belakang kecil secara serentak. Untuk memeriksa dan mengubah tajuk respons dan kod respons, anda boleh menggunakan kaedah HttpResponse.AddOnSendingHeaders dan HttpResponseBase.AddOnSendingHeaders. Anda boleh merujuk artikel MSDN ini untuk membaca lebih lanjut: //msdn.microsoft.com/en-us/library/ms171868%28v=vs.110%29.aspx

Apa yang akan datang seterusnya?

Microsoft mengeluarkan versi pratonton .Net Framework 4.6 November lalu. Anda boleh memuat turun salinan .Net Framework 4.6 dari sini: //www.microsoft.com/en-us/download/details.aspx?id=44928

Raksasa perisian itu juga mengumumkan bahawa ia akan menarik balik sokongannya untuk .Net Framework versi 4.x hingga 4.5.1 selepas Januari 2016. Baca lebih lanjut mengenai ini di sini: //blogs.msdn.com/b/dotnet/archive/2014/08 /07/moving-to-the-net-framework-4-5-2.aspx