kazuk は null に触れてしまった

C# / .NET 系技術ネタ縛りでお送りしております

事例記事がMSサイトに上がってます。


 

http://www.microsoft.com/web/page.aspx/ja-jp/inspiration/crosswarp

って事で、事例記事が大きく上がってますね。

ショーケースのなか、うちだけって事で、ははははは、一番のりのメリットというか、すごい占有率。

ちなみに 独自CMS の中身は随所随所にキャッシュを配置している等の工夫はありますが System.Web.Routing からルートされてきたリクエストに応じて、テンプレートをパース→コード生成→コンパイル→実行っていう、定番的なWebアプリケーション実行エンジンとなってます。

テンプレートの記述言語は

  1. LINQ to SQL の結果セットをレンダリングする

って事をドメインとして、それに必要なシンタックスだけの超簡単な物だったりします。(現状はLINQ to SQLだけど、LINQ式という構文が一致すれば良いはずなんでクエリプロセッサは乗換可能なはず)

これを C# で IHttpHandlerとして書くとして、「結果セットはできるだけキャッシュする」ならコウスルをコードジェネレータとして仕込んでるだけ。

後はトータルとしてエンジンをドライブしてあげれば LINQ to SQL の結果が IHttpHandler でどかっとレンダリングされるって形ですね。

最終的な実行ステージでは IHttpHandler がキャッシュ制御しながらLINQ to SQLをドライブしているだけなんでキャッシュのヒットレートが十分であれば単純な Response.Write の連続コールループに遜色の無いアウトプットスループットが出せます。まぁ、さらにIIS7のカーネルモードキャッシュをイネーブルするのがデフォルトコンフィギュレーションって事で「目指せ!キャッシュモンスター」な実装でございます。

x64でこんなキャッシュモンスターを動かすと当然の事に大量にメモリを消費します…。元気に走ってるとこんなもんです。

image

w3wp.exeにメモリ2GBをもってかれているの図ですね。あぁ、安心して下さい。このWebサーバ、メモリ16GB乗ってます。設計上こんぐらいまで使うのは当然なんです。

 

この凶悪なテンプレートエンジンを ASP.NET MVC の ViewEngineとして再利用するとかはこの人のなせる技。

てな訳で、事例記事よりちょっと技術よりな身の無い解説でございました。

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。