Project一日に100回以上もMarshal.RelelaseComObject(hoge);なんてコードを書いていると、頭がおかしくなってきて、ついつい先のこととか考えてしまいます。L3キャッシュをその多数のコアで奪い合うことになります。したがって、コア数分リニアに性能が上がっていくわけではなく、それらがボトルネックになり、どこかで性能向上の上限が来ます。この性能向上の上限はキャッシュの使用方法を効率化させることで遅らせることは可能だと思います。(少なくともメモリバス速度の向上よりは望みがあります)キャッシュの効率化の方法にはもちろんハードウェア的な手当てもありますが、ソフトウェアを変えていくことで、効率化を図ることが可能なはずです。今のオペレーティングシステム、特にプリエンティブマルチタスクでタスク管理を行うOSは、マイクロプロセッサが提供するタスク切り替えの支援機能、具体的には各レジスタ値、プログラムカウンタ値を退避し、退避したものを復活させる機能を使ってマルチタスク管理を行っています。これを(乱暴に言えば)コンテキストスイッチと言います。このコンテキストスイッチが行われた時に物理的な参照アドレスがたいていの場合大きくジャンプするので、ほとんどの場合キャッシュ破壊が起こります。これはシングルプロセッサや、複数シングルプロセッサによるSMP構成のシステムでは致し方ない無駄なのですが、マルチコアの場合には致し方ないとはいえ、複数のコアでキャッシュを共有している以上より深刻なコストになります。現状のOSを使う限り、できる限りタスク切り替えがないほうがマルチコアでは実行効率が良いということになりわけですが、せっかくコア数が増えたのに、たくさんタスクを動かすと効率が悪くなるというのもなんとなく納得しがたい話です。いうことで、効率化妨げる大きな要因がコンテキストスイッチにあるのだとしたら、それを廃してしまおうという考え方も出てきます。最近は何らかの仮想マシン上でアプリケーションが実行されることが多く、プロセッサネイティブなコードでアプリケーションを書く場合に比べ、タスクスケジューリングや実行単位の粒度に自由度があります。(仕掛けが作りやすい)この自由度を利用して、プロセッサからみた場合には大きな一つのプロセスとしてOSと仮想マシンを合わせたものを動作させて、仮想マシンにマルチタスク管理をさせることで、コンテキストスイッチをさせずにマルチタスク管理をさせようという考え方が出てきました。Projectではこの大きな塊としてのCLR+Alphaがプロセッサ上の1プロセスとして動作し、この中で.NETのアプリケーションをマルチタスクで動作せていて、このNETアプリケーションはAppDomain単位で実行単位(Singularityでのプロセス)として管理されることになります。通常のWindowsアプリケーションではいまいち掴みどころのなかった(何のためにあるのかよくわからなかった)AppDomainがここでは本来の目的を果たしています。hogehogeになることはまずないと思いますが、OSの進化の方向としてはハードウェアの抽象化だけでなく、プロセッサさえ抽象化し、その中でマルチコア、エニィコアの世界、あるいはフリーランチの無い世界においてもアプリケーション実行効率の向上を実現させていくのではないでしょうか。インデクサのUML表現まだUML使ってるのださっ。そんな声が聞こえてきそうな今日この頃、でもまだまだUMLでございます。実装レベルでの設計をUMLで行っていく場合困るのがC#特有のあるいはVB特有の言語機能をどうUMLで表現していこうかと言うところです。<htmlday>とは、日本全国でWeb制作者/開発者向けのイベントを同日に開催することで、日本のWebを一層盛り上げようという「お祭り」です。Framework用逆コンパイラのdotPeakがバージ...PCフリーランチはないどころか、今度は飯代を請求される。Intelはマルチコア化を進めるだけではなくて、今後命令セットの拡張によるプロセッサコアの性能向上を目指すらしい。MSのローカライズのガイドブックMicrosoftが日本語へのローカライズを行う際のガイドラインを公開したようです。リソース翻訳が必要な人はもちろん、すべての開発者がメニューやダイアログボックス、ドキュメントで使用する用語の参考に使用できると思います。1.4.6.がリリースされていました。コメントをキャンセルメールアドレスが公開されることはありません。※サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。アップロードできます。他サービスへのリンクは自動的にコメント内に埋め込まれます。?プライバシーポリシーホーム検索トップサイドバータイトルとURLをコピーしました。