Programovanie

Nové funkcie a vylepšenia v .Net Framework 4.5

Microsoft .Net Framework za posledných pár rokov veľa dozrel. Boli zavedené nové funkcie a vylepšenia, ktoré ju optimalizujú a robia ju rýchlou, bezpečnou, stabilnejšou a výkonnejšou. V tomto článku by som chcel predstaviť vtáčou perspektívou významné vylepšenia v .Net Framework 4.5.x.

Obávané výnimky z nedostatku pamäte

Toto je obávaná chyba a môže sa pre vás stať nočnou morou. Výnimky z nedostatku pamäte môžu ukončiť tok kontroly nad vašou aplikáciou, aj keď máte nainštalovaný dostatok fyzickej pamäte. Robíš si srandu? V žiadnom prípade! Vysvetlím, prečo k tomu môže dôjsť a ako sa tento problém riešil v rozhraní .NET Framework 4.5.

Objekty vytvorené riadeným prostredím sú uložené v halde. V priebehu času sa môže halda fragmentovať z dôvodu vytvárania a odstraňovania objektov. Fragmentácia sa týka pamäťových otvorov (voľná pamäť), ktoré sú rozptýlené. V takom prípade by ste často pozorovali výnimky Z pamäte, ak vaša aplikácia využíva veľké množstvo pamäte a pretože runtime by nebol schopný prideliť priestor, kedykoľvek a v prípade potreby, aj keď tam môže byť k dispozícii.

Znie to čudne? Súčet pamäťových otvorov môže na túto požiadavku stačiť, ale keďže sú tieto pamäťové otvory rozptýlené, runtime ich nemôže použiť.

Zhutnenie haldy veľkých objektov na požiadanie

Novo bolo zavedené zhutňovanie hromady veľkých objektov na požiadanie, aby sa hromada zhustila a eliminovala fragmentácia haldy. Zhutnenie znamená zhutnenie všetkých týchto rozptýlených pamäťových otvorov do jedného bloku. Táto funkcia je k dispozícii (iba na požiadanie) z rozhrania .Net Framework 4.5.1 na zmiernenie problémov s výnimkou pamäte. Ak chcete povoliť túto funkciu, musíte nastaviť vlastnosť LargeObjectHeapCompactionMode.

Mimochodom, táto vlastnosť môže mať jednu z dvoch hodnôt: Predvolená a CompactOnce. Prvá by, keby bola nastavená, ignorovala zhutnenie hromady veľkých objektov počas cyklu GC. Ak použijete druhú možnosť, halda veľkých objektov by bola zhutnená počas nasledujúceho cyklu.

Podpora odolnosti pripojenia ADO.Net

Na zavedenie nečinných alebo nefunkčných pripojení už nemusíte písať kód na implementáciu odolnosti spojenia. .Net Framework 4.5.1 je dodávaný s touto funkciou zabudovanou na opätovné vytváranie prerušených pripojení k databáze.

Vylepšený čas spustenia: Optimalizácia profilu

Optimalizácia profilu je funkcia, ktorá bola zavedená v .Net Framework 4.5 a ktorá minimalizuje čas spustenia aplikácie. Ako to funguje? Profil je súbor, ktorý obsahuje metódy, ktoré by aplikácia potrebovala v čase jej spustenia. Po spustení aplikácie pracuje kompilátor Just in Time (JIT) v pozadí a vo viacerých procesoroch, aby vygeneroval natívny kód z kódu IL.

Vylepšenia zberu odpadu: predstavený server GC

Spravované prostredie .Net využíva zber odpadu na vyčistenie nepoužívaných alebo neodkazovaných objektov - objektov, ktoré už nie sú potrebné. V starších verziách .Net Framework GC pozastavila vlákna aplikácie, keď bola zaneprázdnená čistením pamäte. Toto bolo hlavné zúženie výkonu, pretože vaša aplikácia musela čakať, kým GC dokončí svoju prácu.

S .Net Framework 4.5 to už nie je problém; server GC bol novo zavedený s cieľom uľahčiť čistenie objektov druhej generácie pomocou vlákna na pozadí a tým minimalizovať zaťaženie hlavného vlákna GC, pretože vlákna aplikácií sú pozastavené oveľa menej. S .Net Framework 4.5 je zhromažďovanie odpadu na pozadí podporované na serveri aj na pracovnej stanici GC. Súbežný zber odpadu je teraz tiež podporovaný; vyhradené vlákno vykonáva v prípade potreby odvoz odpadu.

Pozoruhodné vylepšenia v .Net Framework 4.5.2

Spoločnosť Microsoft nedávno vydala .Net Framework 4.5.2. Microsoft oznámil uvedenie na trh v blogu .Net Framework. Tu je odkaz: //blogs.msdn.com/b/dotnet/archive/2014/05/05/announcing-the-net-framework-4-5-2-release.aspx

Okrem vylepšení v profilovaní a ladení existujú aj významné vylepšenia v ASP.Net v .Net Framework 4.5.2. Teraz môžete použiť metódy HostingEnvironment.QueueBackgroundWorkItem na asynchrónne naplánovanie malých úloh na pozadí. Ak chcete skontrolovať a upraviť hlavičky odpovedí a kódy odpovedí, môžete použiť metódy HttpResponse.AddOnSendingHeaders a HttpResponseBase.AddOnSendingHeaders. V tomto článku MSDN si môžete prečítať ďalšie informácie: //msdn.microsoft.com/en-us/library/ms171868%28v=vs.110%29.aspx

Čo bude nasledovať ďalej?

Spoločnosť Microsoft vydala v novembri minulého roka ukážkovú verziu .Net Framework 4.6. Kópiu .Net Framework 4.6 si môžete stiahnuť tu: //www.microsoft.com/en-us/download/details.aspx?id=44928

Softvérový gigant taktiež oznámil, že po januári 2016 zruší podporu pre .Net Framework verzie 4.x až 4.5.1. Viac informácií nájdete tu: //blogs.msdn.com/b/dotnet/archive/2014/08 /07/moving-to-the-net-framework-4-5-2.aspx

$config[zx-auto] not found$config[zx-overlay] not found