あなたが何をしているかにもよりますが、HttpHandler を使用するだけで多くの改善が見られるとは思えません。HttpHandler を記述して、そのパフォーマンスを確認することから始めます。より高速にする必要がある場合は、リクエストの処理中に実際に行っていることを詳しく調べて、最適化できることを確認してください。たとえば、データベースへのログ記録を行っている場合は、ネットワーク経由ではなく、ローカル データベースへの書き込みを試みます。それでも十分に速くない場合は、より低いレベルのものを書くことを検討してください。ただし、その時点までは、あなたにとって最も書きやすいものに固執します。
参考までに、負荷がかかった状態で 0 ~ 15 ミリ秒で広告を配信できる (ターゲティングとインプレッションのローカル データベースへのログ記録を含む) ASP.NET (HttpHandlers を使用) で広告サーバーを作成しました。私はかなりの処理を行っていると思っていましたが、それはかなり良い応答時間です。
数か月後の更新:
デフォルトで含まれているすべての HttpModules をクリアすると、かなりの量のオーバーヘッドが削除されます。既定では、次の HttpModules は、コンピューター レベルの web.config ファイルを介してすべてのサイトに含まれています。
- 出力キャッシュ
- セッション (セッション状態用)
- Windows認証
- フォーム認証
- パスポート認証
- RoleManager
- URL認可
- ファイル認証
- 匿名識別
- プロフィール
- エラーハンドラ
- サービスモデル
上で述べたように、私の広告サーバーはこれらのいずれも使用しないため、そのアプリの web.config でこれを行っただけです。
<httpModules>
<clear />
</httpModules>
それらのすべてではなく一部が必要な場合は、不要なものを削除できます。
<httpModules>
<remove name="PassportAuthentication" />
<remove name="Session" />
</httpModules>
ASP.NET MVC 注: ASP.NET MVC には、回避策として特別な措置を講じない限り、セッション状態モジュールが必要です。詳細については、次の質問を参照してください: ASP.NET MVC でセッション状態を無効にするにはどうすればよいですか?
IIS7 の更新:残念ながら、IIS7 では物事はそれほど単純ではありません。IIS7でHTTPモジュールをクリアする方法は次のとおりです