オープンソースCMS「DotNetNuke」のセットアップ
前回はMicrosoft Web Platform Installerを利用して、DotNetNukeとWebMatrixをインストールする方法を紹介した。今回は、DotNetNukeのインストール方法を紹介する。
ブックマークされました!
ブックマークがエラーになりました。もう一度お願いします。
作者 Jonathan Allen , 翻訳者 編集部 投稿日 2008年9月26日
.NETプラットフォームでは、たいていのコンパイラーはVBやC#コンパイラーでは最適化されない。それどころか、CLRのJust in TimeコンパイラーがILを受け取り、それをネイティブマシンコードに変換するまで遅延される。このため、JITへの変更は以前にコンパイルされたアセ ンブリに多大な影響を及ぼしかねない。
大きな影響を受ける領域の1つに、機能呼び出しのインライン化がある。これまでJITはインライン化メソッドに非常に保守的であった。Vance Morrison氏はその理由を説明している(リンク)。
インライン化が必ずしも他より優れているとは限らない。インライン化は、実行される命令数を少なくする(控えめに述べても、呼び出しおよびリターン命令は実行 されないため)。しかし、結果コードを巨大にする可能性がある(たいていの場合)。われわれの多くは直感的に、(たとえば1K バイトの)大きなメソッドをインライン化することは意味をなさず、呼び出しサイトを小さくする非常に小さなメソッド(呼び出し命令が5バイトであるため) をインライン化するのがつねにうまくいくと本能的に知っているだろう。しかしその間にあるメソッドについてはどうか?
興味深いことに、コードを大きくするにつれて、それをさらに遅くしている。その理由は本質的にメモリが遅く、コードが巨大化すればするほど、最速のCPU キャッシュ(L1と呼ばれている)には入らなくなる。その場合、プロセッサは他のキャッシュ(L2と呼ばれる)からフェッチされるまで3から10サイクル 停止する。そしてそこに入らなければ、メインメモリに入る(10サイクル以上かかる)。短いループで実行するコードではこの結果は問題ではない。すべての コードが最速のキャッシュ(通常は64K)に「うまく入る」からである。しかしながら「標準的な」コードでは、多くのメソッドから大量のコードを実行する ため、「大きくなればなるほど、遅くなる」という結果は非常に明白である。またコードが大きくなることは、開始時にディスクからコードを取り除くために、 より大きなディスクI/Oを必要とすることを意味し、アプリケーションがゆっくり起動することを意味する。
サービスパック 1については、Microsoftはコードサイズおよび呼び出しがループにあるかどうかに基づいた新たなヒューリスティックを採用している。通常の状況下 で、結果のマシンコードが呼び出しサイトのオリジナルバージョンよりも小さい場合に、機能はインライン化される。キャッシュミスはパフォーマンスに大きな 影響を及ぼしかねないので、これはできるだけ多くのコードがCPUのキャッシュに入るようにするために実行される。
ループ内で作業する場合、一部例外がある。おそらく機能は頻繁に呼び出されるので、CLRは元の呼び出しサイトの5倍までの大きさの機能をインラインすることができる。バリュータイプの最適化などのその他の条件は、許可されるサイズをさらに拡大する場合がある。
原文はこちらです:http://www.infoq.com/news/2008/09/JIT-Inlining
前回はMicrosoft Web Platform Installerを利用して、DotNetNukeとWebMatrixをインストールする方法を紹介した。今回は、DotNetNukeのインストール方法を紹介する。
DotNetNukeは、Windows Serverで動作するCMS(Contents Management System)である。この記事ではWeb Platform Installer を利用して人気CMS「DotNetNuke」と無償Web開発環境「WebMatrix」のインストールする方法を紹介する。
クラウドコンピューティングを前提とした大規模データ技術が利用可能となってきています。Big Dataが一過性のブームで終わるかどうかにかかわらず、スケーラブルな分散アーキテクチャーの基盤はデータベース技術に主導されつつあります。RDBとORM主体のエンタープライズシステムは、HadoopやNoSQLとの組み合わせにより複合的なデータモデルに発展しました。
2011年12月8日~2011年12月9日に、ロンドンのSkills Matter eXchangeにて開催された「Groovy & Grails eXchange 2011」の参加報告を、日本Grails/Groovyユーザーグループのメンバーが3回に渡って紹介します。
Googleのクラウド環境をつかったGoogle App Engineによる開発するにあたり、初めての試みで苦悩する開発者達の経験をもとに、各開発フェーズにあわせて問題点やどう解決したかをご紹介します
去る1月12日、定理証明支援系ツールCoqの初心者向けチュートリアルが開催さ れた(http://kokucheese.com/event/index/23667/)。今後も2月2日 (http://kokucheese.com/event/index/23744/)、2月9日、2月16日と引き続���開 催されていく予定である。本記事では、開催の様子をレポートする。
Neal Gafter氏はOracleによるJava買収の影響に関する議論、Javaにセグメンテッドスタックやメタオブジェクトプロトコルを追加することについての主張、そしてJavaとC#との比較について話をしてくれた。
No comments
スレッド表示 返信