Programavimas

Naujos „NetNet Framework 4.5“ funkcijos ir patobulinimai

„Microsoft .Net Framework“ per pastaruosius kelerius metus labai subrendo. Naujų funkcijų ir patobulinimų buvo pristatyta daug, kad būtų galima jį optimizuoti ir padaryti jį greitą, saugų, stabilesnį ir našesnį. Šiame straipsnyje norėčiau pateikti paukščio skrydžio žvilgsnį į reikšmingus .Net Framework 4.5.x patobulinimus.

Bijotos iš atminties išimtys

Tai yra bauginanti klaida ir gali tapti jūsų košmaru. Išimties trūkumas gali nutraukti jūsų programos valdymo srautą, net jei turite pakankamai fizinės atminties. Ar tu juokauji? Negali būti! Leiskite man paaiškinti, kodėl taip gali atsitikti ir kaip ši problema buvo išspręsta .NET Framework 4.5.

Valdomos aplinkos sukurti objektai kaupiami kaupe. Laikui bėgant kaupas gali suskaidyti dėl objektų sukūrimo ir pašalinimo. Suskaidymas reiškia išsibarsčiusias atminties skyles (laisvą atmintį). Tokiu atveju dažnai stebite „Iš atminties“ išimtis, jei jūsų programa naudoja daug atminties ir todėl, kad vykdymo laikas negalės paskirstyti vietos, kai ir prireikus, net jei gali būti laisvos vietos.

Skamba keistai? Na, šiai užklausai gali pakakti atminties skylių sumos, tačiau kadangi šios atminties skylės yra išsibarsčiusios, vykdymo laikas negali jų naudoti.

Didelio objekto kaupo sutankinimas pagal poreikį

Pakankamai didelių objektų krūvos tankinimas buvo naujai įdiegtas, kad sutankintų krūvą ir pašalintų krūvos fragmentaciją. Sutankinimas reiškia visų šių išsklaidytų atminties skylių sutankinimą į vieną bloką. Šią funkciją galima (tik pagal pareikalavimą) iš .Net Framework 4.5.1, siekiant sušvelninti išimties išimties problemas. Norėdami įjungti šią funkciją, turite nustatyti ypatybę LargeObjectHeapCompactionMode.

Beje, ši savybė gali turėti vieną iš dviejų reikšmių: Default ir CompactOnce. Pirmasis, jei nustatytas, ignoruotų didelio objekto kaupo sutankinimą per GC ciklą. Jei naudosite pastarąjį, per kitą ciklą didelis objektų kaupas bus sutankintas.

ADO.Net ryšio atsparumo palaikymas

Jums nebereikia rašyti kodo, kad būtų užtikrintas ryšio atsparumas, norint užmegzti nenaudojamus ar neveikiančius ryšius. .Net Framework 4.5.1 yra įdiegta ši funkcija, skirta iš naujo sukurti sugadintus ryšius su duomenų baze.

Pagerintas paleidimo laikas: profilio optimizavimas

Profilio optimizavimas yra funkcija .Net Framework 4.5, kuri sumažina programos paleidimo laiką. Kaip tai veikia? Profilis yra failas, kuriame yra metodai, kurių programai prireiktų paleidimo metu. Paleidus programą, „Just in Time Compiler“ (JIT) veikia foninėje gijoje ir keliuose procesoriuose, kad generuotų gimtąjį kodą iš IL kodo.

Šiukšlių surinkimo patobulinimai: pristatytas serverio GC

„Net“ valdoma aplinka naudoja šiukšlių surinkimą nenaudojamiems ar nereikalingiems objektams išvalyti - objektams, kurie nebereikalingi. Ankstesnėse .Net Framework versijose GC sustabdė programų gijas, kai buvo užimtas valant atmintį. Tai buvo didelis našumas, nes jūsų paraiška turėjo laukti, kol GC baigs darbą.

Su .Net Framework 4.5 tai nebėra problema; serverio GC buvo naujai pristatytas siekiant palengvinti antros kartos objektų valymą naudojant fono giją ir taip sumažinti pagrindinės GC gijos apkrovą, nes programos gijos yra daug rečiau sustabdomos. Naudojant .Net Framework 4.5, fone atliekų surinkimas palaikomas tiek serveryje, tiek darbo stotyje GC. Dabar palaikomas ir tuo pačiu metu atliekamas šiukšlių surinkimas; specialus siūlas atlieka šiukšlių surinkimą, kai to reikia.

Žymūs „.Net Framework 4.5.2“ patobulinimai

„Microsoft“ neseniai išleido .Net Framework 4.5.2. Apie leidimą „Microsoft“ paskelbė tinklaraštyje .Net Framework. Čia yra nuoroda: //blogs.msdn.com/b/dotnet/archive/2014/05/05/announcing-the-net-framework-4-5-2-release.aspx

Be profiliavimo ir derinimo patobulinimų, .Net Framework 4.5.2 yra pastebimi ASP.Net patobulinimai. Dabar galite naudoti „HostingEnvironment.QueueBackgroundWorkItem“ metodus, kad asinchroniškai suplanuotumėte mažas fonines užduotis. Norėdami patikrinti ir modifikuoti atsakymo antraštes ir atsakymo kodus, galite naudoti „HttpResponse.AddOnSendingHeaders“ ir „HttpResponseBase.AddOnSendingHeaders“ metodus. Jei norite toliau skaityti, galite perskaityti šį MSDN straipsnį: //msdn.microsoft.com/en-us/library/ms171868%28v=vs.110%29.aspx

Kas bus toliau?

„Microsoft“ praėjusių metų lapkritį išleido „.Net Framework 4.6“ peržiūros versiją. .Net Framework 4.6 kopiją galite atsisiųsti iš čia: //www.microsoft.com/en-us/download/details.aspx?id=44928

Programinės įrangos milžinė taip pat paskelbė, kad po 2016 m. Sausio atšauks savo paramą .Net Framework 4.x – 4.5.1 versijoms. Daugiau apie tai skaitykite čia: //blogs.msdn.com/b/dotnet/archive/2014/08 /07/moving-to-the-net-framework-4-5-2.aspx