Programování

Nové funkce a vylepšení v .NET Framework 4.5

Microsoft .Net Framework za posledních několik let hodně dospěl. Byly zavedeny nové funkce a vylepšení, které ji optimalizují a činí ji rychlou, bezpečnou, stabilnější a výkonnější. V tomto článku bych rád představil pohled z ptačí perspektivy na významná vylepšení v .Net Framework 4.5.x.

Obávané výjimky z nedostatku paměti

Toto je obávaná chyba a může se pro vás stát noční můrou. Výjimky z paměti mohou ukončit tok řízení vaší aplikace, i když máte nainstalován dostatek fyzické paměti. Děláš si legraci? V žádném případě! Vysvětlím, proč k tomu může dojít a jak byl tento problém vyřešen v .Net Framework 4.5.

Objekty vytvořené spravovaným prostředím jsou uloženy v haldě. V průběhu času se halda může fragmentovat kvůli vytváření a odebírání objektů. Fragmentace označuje paměťové otvory (volná paměť), které jsou rozptýleny. V takovém případě byste často pozorovali výjimky Nedostatek paměti, pokud vaše aplikace používá velké množství paměti a protože běhový modul by nebyl schopen přidělit místo, kdykoli a v případě potřeby, i když tam může být místo k dispozici.

Zní to divně? Součet paměťových otvorů může pro tento požadavek stačit, ale protože jsou tyto paměťové otvory rozptýleny, modul runtime je nemůže použít.

Hutnění hromady velkých objektů na vyžádání

Nově bylo zavedeno zhutnění haldy velkých objektů na vyžádání, aby se hromada zhutnila a eliminovala fragmentace haldy. Zhutnění znamená zhutnění všech těchto rozptýlených paměťových děr do jednoho bloku. Tato funkce je k dispozici (pouze na vyžádání) z .Net Framework 4.5.1 ke zmírnění problémů s výjimkou paměti. Chcete-li povolit tuto funkci, musíte nastavit vlastnost LargeObjectHeapCompactionMode.

Mimochodem, tato vlastnost může mít jednu ze dvou hodnot: Výchozí a CompactOnce. První sada by ignorovala zhutnění hromady velkých objektů během cyklu GC. Pokud použijete druhou možnost, hromada velkých objektů by byla zhutněna během dalšího cyklu.

Podpora odolnosti připojení ADO.Net

Už nemusíte psát kód k implementaci odolnosti připojení k navázání nečinných nebo přerušených připojení. .Net Framework 4.5.1 je dodáván s touto funkcí zabudovanou k opětovnému vytváření přerušených připojení k databázi.

Vylepšená doba spuštění: Optimalizace profilu

Optimalizace profilu je funkce, která byla zavedena v .Net Framework 4.5, která minimalizuje dobu spuštění aplikace. Jak to funguje? Profil je soubor, který obsahuje metody, které by aplikace potřebovala při spuštění. Při spuštění aplikace běží Just in Time Compiler (JIT) v podprocesu na pozadí a napříč více procesory, aby vygeneroval nativní kód z kódu IL.

Vylepšení uvolňování paměti: Představen server GC

Spravované prostředí .Net používá uvolňování paměti k vyčištění nepoužívaných nebo neodkazovaných objektů - objektů, které již nejsou potřeba. V dřívějších verzích .Net Framework GC pozastavila vlákna aplikace, když byla zaneprázdněna vyčištěním paměti. Toto byla hlavní překážka výkonu, protože vaše aplikace musela počkat, až GC dokončí svou práci.

S .Net Framework 4.5 to už není problém; server GC byl nově zaveden s cílem usnadnit čištění objektů druhé generace pomocí podprocesu na pozadí a tím minimalizovat zatížení hlavního vlákna GC, protože podprocesy aplikace jsou mnohem méně často pozastaveny. S .Net Framework 4.5 je podporováno uvolňování paměti na pozadí v GC na serveru i na pracovní stanici. Souběžné uvolňování paměti je nyní také podporováno; vyhrazené vlákno provádí v případě potřeby uvolnění paměti.

Pozoruhodná vylepšení v .NET Framework 4.5.2

Společnost Microsoft nedávno vydala .Net Framework 4.5.2. Vydání bylo oznámeno společností Microsoft v blogu .Net Framework. Zde je odkaz: //blogs.msdn.com/b/dotnet/archive/2014/05/05/announcing-the-net-framework-4-5-2-release.aspx

Kromě vylepšení v profilování a ladění existují pozoruhodná vylepšení v ASP.Net v .Net Framework 4.5.2. Nyní můžete použít metody HostingEnvironment.QueueBackgroundWorkItem k asynchronnímu plánování malých úloh na pozadí. Chcete-li zkontrolovat a upravit záhlaví odpovědi a kódy odpovědí, můžete použít metody HttpResponse.AddOnSendingHeaders a HttpResponseBase.AddOnSendingHeaders. V tomto článku MSDN si můžete přečíst další informace: //msdn.microsoft.com/en-us/library/ms171868%28v=vs.110%29.aspx

Co přijde dál?

Společnost Microsoft vydala loni v listopadu ukázkovou verzi .Net Framework 4.6. Kopii .Net Framework 4.6 si můžete stáhnout zde: //www.microsoft.com/en-us/download/details.aspx?id=44928

Softwarový gigant také oznámil, že po lednu 2016 zruší podporu pro .Net Framework verze 4.x až 4.5.1. Další informace najdete zde: //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