MSDN マガジン: 注目記事Silverlight 4 の驚異的なパフォーマンスを支える新 CLR - ランタイムと基本クラスの強化更新日: 2010 年 11 月 12 日 この記事は オンライン版月刊技術情報誌 MSDN マガジンの中から特におすすめの記事を解説したものです。MSDN マガジンの本文は「Silverlight 4 の新機能とパフォーマンスの向上」を参照してください。 Silverlight 4 は、前バージョン Silverlight 3 に比べ、実行速度において、著しいパフォーマンスの向上を実現しています。この秘密は、Silverlight 4 の新 CLR (共通言語ランタイム) にあります。実はこの新 CLR では、ランタイムと基本クラスの両方が強化されています。 ここで Silverlight のアーキテクチャをおさらいしておきましょう。下図の通り、Silverlight プラットフォームは、入力、UI レンダリング、メディア、Deep Zoom、コントロール、レイアウト、データ バインディング、DRM、XAML 等から構成されるプレゼンテーション コアと、データ (LINQ や LINQ to XML)、基本クラス ライブラリ、Windows Communication Foundation (WCF)、CLR (共通言語ランタイム)、WPF (Windows Presentation Foundation) コントロール、DLR (動的言語ランタイム) 等から構成される .NET for Silverlight、という 2 つの主要パーツ、そしてインストーラーと更新コンポーネントによって、構成されています。 このうち、.NET Framework for Silverlight は、.NET Framework のサブセットで、堅牢なオブジェクト指向のアプリケーション開発の基本機能を備えており、これを利用することで、高度な RIA の構築が可能です。そして、Silverlight 4 になって、この中の CLR (共通言語ランタイム) が大きく進化したことにより、驚異的なパフォーマンスを実現できるようになったのです。 図 Silverlight のアーキテクチャ Note: Silverlight のアーキテクチャの詳細は下記の URL をご確認ください。 具体的には、新しい GC (ガベージ コレクター) の動作、Silverlight Framework アセンブリで NGen が実行されるようになったこと、および分離ストレージのパフォーマンスが向上したことで、アプリケーションの起動時間が短縮され、Silverlight 4 での実行が強化されています。また、BCL (基本クラス ライブラリ) の機能強化によって、アプリケーションでは少ないコードで多くの処理を実行できるようになり、信頼済みのアプリケーションからファイル システムにアクセスできるようになったことから、これまでには実現できなかった Silverlight アプリケーションが実現できるようになりました。以下、個別に解説していきましょう。 新しい GC の動作には、世代別の GC、同時実行 GC の問題点を解決するバックグラウンド GC が追加されました。これによる、プログラムの遅延に対する効果は絶大であり、バックグラウンド GC を実行すると、プログラムの実行が中断される回数が大幅に減少し、中断された場合でも中断時間が短くなります。 NGen は、.NET Framework コードをインストール時にコンパイルします。そのため、プログラムの実行開始時には既にコードがコンパイルされています。NGen でコンパイルされたコードは多くの場合複数のプログラムで共有できるため、複数の Silverlight プログラムを実行するときに、ユーザーのコンピューター上のワーキング セットが減少します。 そして、Silverlight 4 で追加された、BCL (基本クラス ライブラリ) の機能強化の多くは .NET Framework 4 の新機能です。Silverlight コードでの事前条件、事後条件、およびオブジェクト インバリアントを指定する組み込みの手段が提供されるコード コントラクトや、SDK において多くのデータ型や便利なメソッドが利用できるような改良がなされました。 更に、分離ストレージの機能が一部強化されました。特に Silverlight 4 での分離ストレージの特筆すべき機能強化は、パフォーマンス面での機能強化のためのメソッド等の追加です。そして、OOB (ブラウザー外実行) の信頼された Silverlight アプリケーションから、System.IO を使用してファイル システムの一部に直接アクセスできるようになりました。 このように、Silverlight 4 では、ランタイムと基本クラスが強化された新しい CLR により、その驚異的なパフォーマンスの向上を実現しています。是非、この機会に Silverlight 4 でのアプリケーション開発にご着手ください。 ページのトップへ |