.Net Framework 4.5의 새로운 기능 및 개선 사항

Microsoft .Net Framework는 지난 몇 년 동안 많이 발전했습니다. 새로운 기능과 개선 사항이 많이 도입되어이를 최적화하고 빠르고 안전하며 안정적이며 고성능을 제공합니다. 이 기사에서는 .Net Framework 4.5.x의 중요한 개선 사항에 대한 조감도를 제시하고 싶습니다.

두려운 메모리 부족 예외

이것은 끔찍한 오류이며 악몽이 될 수 있습니다. 메모리 부족 예외는 충분한 물리적 메모리가 설치되어있는 경우에도 애플리케이션의 제어 흐름을 종료 할 수 있습니다. 농담 해? 절대 안돼! 이것이 발생하는 이유와이 문제가 .Net Framework 4.5에서 어떻게 해결되었는지 설명하겠습니다.

관리 환경에서 생성 된 개체는 힙에 저장됩니다. 일정 시간이 지나면 개체를 만들고 제거하기 때문에 힙이 조각화 될 수 있습니다. 조각화는 흩어져있는 메모리 구멍 (사용 가능한 메모리)을 나타냅니다. 이러한 경우 응용 프로그램이 많은 양의 메모리를 사용하고 사용 가능한 공간이 있더라도 런타임이 필요할 때 공간을 할당 할 수 없기 때문에 종종 메모리 부족 예외가 발생합니다.

이상하게 들리나요? 이 요청에는 메모리 구멍의 합계로 충분할 수 있지만 이러한 메모리 구멍이 흩어져 있으므로 런타임에서 사용할 수 없습니다.

요청시 대형 개체 힙 압축

온 디맨드 대형 개체 힙 압축이 새로 도입되어 힙을 압축하고 힙 조각화를 제거했습니다. 압축은 분산 된 모든 메모리 구멍을 하나의 블록으로 압축하는 것을 의미합니다. 이 기능은 메모리 부족 예외 문제를 완화하기 위해 .Net Framework 4.5.1에서 사용할 수 있습니다 (요청시에만 해당). 이 기능을 사용하려면 LargeObjectHeapCompactionMode 속성을 설정해야합니다.

참고로이 속성은 Default 및 CompactOnce의 두 값 중 하나를 가질 수 있습니다. 전자는 GC주기 동안 큰 개체 힙의 압축을 무시합니다. 후자를 사용하면 큰 개체 힙이 다음주기 동안 압축됩니다.

ADO.Net 연결 복원력 지원

더 이상 유휴 또는 끊어진 연결을 설정하기 위해 연결 복원력을 구현하는 코드를 작성할 필요가 없습니다. .Net Framework 4.5.1에는 데이터베이스에 대한 끊어진 연결을 다시 만들기 위해이 기능이 기본 제공됩니다.

시작 시간 개선 : 프로필 최적화

프로필 최적화는 응용 프로그램 시작 시간을 최소화하는 .Net Framework 4.5에 도입 된 기능입니다. 어떻게 작동합니까? 프로필은 응용 프로그램이 시작될 때 필요한 메서드가 포함 된 파일입니다. 애플리케이션이 시작되면 JIT (Just In Time Compiler)가 백그라운드 스레드 및 여러 프로세서에서 실행되어 IL 코드에서 네이티브 코드를 생성합니다.

가비지 콜렉션 향상 : 서버 GC 도입

.Net의 관리 환경은 가비지 수집을 사용하여 사용되지 않거나 참조되지 않은 개체 (더 이상 필요하지 않은 개체)를 정리합니다. .Net Framework의 이전 버전에서 GC는 메모리 정리 중일 때 응용 프로그램 스레드를 일시 중단했습니다. GC가 작업을 마칠 때까지 애플리케이션이 기다려야했기 때문에 이는 주요 성능 병목 현상이었습니다.

.Net Framework 4.5에서는 더 이상 문제가되지 않습니다. 서버 GC는 백그라운드 스레드를 사용하여 2 세대 개체의 정리를 용이하게하기 위해 새로 도입되었으며, 따라서 애플리케이션 스레드가 훨씬 덜 자주 중단되므로 기본 GC 스레드의로드를 최소화합니다. .Net Framework 4.5에서는 백그라운드 가비지 수집이 서버 및 워크 스테이션 GC 모두에서 지원됩니다. 동시 가비지 수집도 지원됩니다. 전용 스레드는 필요할 때 가비지 수집을 수행합니다.

.Net Framework 4.5.2의 주목할만한 개선 사항

Microsoft는 최근 .Net Framework 4.5.2를 출시했습니다. 이 릴리스는 .Net Framework 블로그에서 Microsoft에 의해 발표되었습니다. 링크 : //blogs.msdn.com/b/dotnet/archive/2014/05/05/announcing-the-net-framework-4-5-2-release.aspx

프로파일 링 및 디버깅의 개선 외에도 .Net Framework 4.5.2의 ASP.Net에는 눈에 띄는 개선 사항이 있습니다. 이제 HostingEnvironment.QueueBackgroundWorkItem 메서드를 사용하여 소규모 백그라운드 작업을 비동기 적으로 예약 할 수 있습니다. 응답 헤더와 응답 코드를 검사하고 수정하려면 HttpResponse.AddOnSendingHeaders 및 HttpResponseBase.AddOnSendingHeaders 메서드를 사용할 수 있습니다. 자세한 내용은이 MSDN 문서를 참조하십시오 : //msdn.microsoft.com/en-us/library/ms171868%28v=vs.110%29.aspx

다음은 무엇입니까?

Microsoft는 지난 11 월 .Net Framework 4.6의 미리보기 버전을 출시했습니다. 여기에서 .Net Framework 4.6을 다운로드 할 수 있습니다. //www.microsoft.com/en-us/download/details.aspx?id=44928

이 소프트웨어 거대 기업은 또한 2016 년 1 월 이후 .Net Framework 버전 4.x부터 4.5.1까지 지원을 철회 할 것이라고 발표했습니다. 자세한 내용은 여기에서 확인하세요 : //blogs.msdn.com/b/dotnet/archive/2014/08 /07/moving-to-the-net-framework-4-5-2.aspx