.Net Framework4.5の新機能と拡張機能

Microsoft .Net Frameworkは、過去数年間で大きく成熟しました。それを最適化し、高速、安全、より安定した、高性能にするための新機能と拡張機能が豊富に導入されています。この記事では、.Net Framework4.5.xの大幅な改善について俯瞰したいと思います。

恐ろしいメモリ不足の例外

これは恐ろしいエラーであり、あなたにとって悪夢になる可能性があります。十分な物理メモリがインストールされている場合でも、メモリ不足の例外により、アプリケーションの制御フローが終了する可能性があります。冗談ですか?ありえない!これが発生する理由と、この問題が.Net Framework4.5でどのように対処されているかを説明します。

管理対象環境で作成されたオブジェクトはヒープに格納されます。ある期間にわたって、オブジェクトの作成と削除のためにヒープが断片化する可能性があります。断片化とは、散在するメモリホール(空きメモリ)を指します。このような場合、アプリケーションが大量のメモリを使用し、使用可能なスペースがある場合でも、ランタイムが必要なときに必要に応じてスペースを割り当てることができないため、メモリ不足の例外が発生することがよくあります。

変に聞こえますか?さて、このリクエストにはメモリホールの合計で十分かもしれませんが、これらのメモリホールは散在しているため、ランタイムはそれらを使用できません。

オンデマンドでのラージオブジェクトヒープの圧縮

オンデマンドラージオブジェクトヒープ圧縮が新たに導入され、ヒープを圧縮してヒープの断片化を排除しました。圧縮とは、これらの分散したメモリホールをすべて1つのブロックに圧縮することを意味します。この機能は、メモリ不足の例外の問題を軽減するために、.Net Framework 4.5.1から(オンデマンドでのみ)使用できます。この機能を有効にするには、LargeObjectHeapCompactionModeプロパティを設定する必要があります。

ちなみに、このプロパティには、DefaultとCompactOnceの2つの値のいずれかを指定できます。前者の場合、GCサイクル中の大きなオブジェクトヒープの圧縮は無視されます。後者を使用する場合、大きなオブジェクトヒープは次のサイクルで圧縮されます。

ADO.Net接続の復元力のサポート

アイドル状態または切断された接続を確立するために接続の復元力を実装するためのコードを記述する必要がなくなりました。.Net Framework 4.5.1には、データベースへの切断された接続を再作成するためのこの機能が組み込まれています。

起動時間の改善:プロファイルの最適化

プロファイルの最適化は、アプリケーションの起動時間を最小限に抑える.Net Framework4.5で導入された機能です。これはどのように作動しますか?プロファイルは、アプリケーションの起動時に必要となるメソッドを含むファイルです。アプリケーションが起動すると、Just in Timeコンパイラ(JIT)がバックグラウンドスレッドで複数のプロセッサ間で実行され、ILコードからネイティブコードが生成されます。

ガベージコレクションの機能強化:サーバーGCが導入されました

.Netの管理対象環境では、ガベージコレクションを使用して、未使用または参照されていないオブジェクト(不要になったオブジェクト)をクリーンアップします。以前のバージョンの.NetFrameworkでは、GCは、メモリのクリーンアップでビジー状態のときにアプリケーションスレッドを一時停止していました。アプリケーションはGCが作業を終了するまで待たなければならなかったため、これはパフォーマンスの大きなボトルネックでした。

.Net Framework 4.5では、これはもはや問題ではありません。サーバーGCは、バックグラウンドスレッドを使用して第2世代オブジェクトのクリーニングを容易にするために新しく導入されました。したがって、アプリケーションスレッドが中断される頻度がはるかに少ないため、メインGCスレッドの負荷を最小限に抑えます。.Net Framework 4.5では、サーバーとワークステーションの両方のGCでバックグラウンドのガベージコレクションがサポートされています。同時ガベージコレクションもサポートされるようになりました。専用スレッドが必要に応じてガベージコレクションを実行します。

.Net Framework4.5.2の注目すべき改善

Microsoftは最近.NetFramework4.5.2をリリースしました。このリリースは、Microsoftによって.NetFrameworkブログで発表されました。リンクは次のとおりです://blogs.msdn.com/b/dotnet/archive/2014/05/05/announcing-the-net-framework-4-5-2-release.aspx

プロファイリングとデバッグの改善に加えて、.Net Framework4.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 Framework4.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