推奨:RSSフィードを生成するためのMaxムービーサイトのコードしばらく前に、RSSサブスクリプション機能を私の映画サイトに追加するために、RSSフィードを動的に生成するASPコードを書きました。添付ファイルをアップロードできないので、コードを貼り付けました。とにかくそう長くはありません。 Maxを映画サイトとして使用する友人は、直接それを使用できます。他のタイプのサイトを変更します。
ASP開発者は、設計プロジェクトのパフォーマンスとスケーラビリティを向上させるために常に取り組んでいます。幸いなことに、これについて素晴らしいアドバイスを提供する本やサイトがたくさんあります。ただし、これらの提案の根拠は、ASPプラットフォーム作業の構造から引き出された結論であり、パフォーマンスの実際の改善の測定はありません。これらの提案は、より複雑なコーディングプロセスを必要とし、コーディングの読みやすさを減らす必要があるため、開発者は実際の運用効果を見ずにASPアプリケーションのパフォーマンスを改善するために支払う価値があるかどうかのみを測定できます。
この記事は2つの部分に分割されており、いくつかのパフォーマンステスト結果を紹介して、開発者が特定のイニシアチブが将来のプロジェクトにとって価値があるだけでなく、元のプロジェクトを更新できるかどうかを判断するのに役立ちます。最初の部分では、ASP開発におけるいくつかの基本的な問題を確認します。第2部では、ADO関数のいくつかの最適化が関与し、その結果はVB comオブジェクトを呼び出して同じADO関数を実行するASPページと比較されます。これらの結果は目を見張るもので、時には驚くべきことです。
この記事では、次の質問に答えます。
* ASPによって生成されたコンテンツを応答ストリームに書き込む最も効率的な方法は何ですか?
*バッファーをオンにする必要がありますか?
* ASPコードにコメントを追加することを検討する必要がありますか?
*デフォルト言語はページに明示的に設定する必要がありますか?
*必要でない場合は、セッション状態をオフにする必要がありますか?
*スクリプトロジックは、サブルーチンと機能領域に配置する必要がありますか?
*インクルードファイルを使用することの効果は何ですか?
*エラー処理を実行すると、どのような負荷が適用されますか?
*コンテキスト処理の設定はパフォーマンスに影響を与えますか?
すべてのテストは、MicrosoftのWebアプリケーションフォーカスツール(WAST)を使用して実施されました。これは、ここにある無料ツールです。 WASTを使用して簡単なテストスクリプトを作成し、以下に説明するASPページテストを繰り返し呼び出します(それぞれ70,000倍以上)。反応の時間は、平均的な最後のバイト合計時間(TTLB)、つまり、最初の要求の時刻から、ツールがサーバーから最後のデータを受信するまでの時間までです。私たちのテストサーバーは、196MBのメモリと256MBのメモリを備えたペンティウム450を備えたPentium 166です。これらのマシンのパフォーマンスはあまり高度ではないと思うかもしれませんが、サーバーの容量をテストしていないことを忘れないでください。サーバーが一度に1ページを処理するのにかかる時間をテストしているだけです。これらのマシンは、テスト中に他の作業を行いません。テストスクリプト、テストレポート、およびすべてのASPテストページがZIPファイルに含まれているため、自分でレビューしてテストできます。
ASPによって生成されたコンテンツを応答ストリームに書き込む最も効率的な方法は何ですか?
ASPを使用する主な理由の1つは、サーバーで動的コンテンツを生成することです。したがって、テストの出発点は、動的コンテンツを応答ストリームに送信する最も適切な方法を決定することであることは明らかです。多くのオプションの中で、2つが最も基本的なものです。1つはインラインASPタグを使用すること、もう1つはResponse.writeステートメントを使用することです。
これらの選択をテストするために、いくつかの変数が定義され、その値がテーブルに挿入される簡単なASPページを作成します。このページはシンプルであまり実用的ではありませんが、いくつかの個別の質問を分離してテストすることができます。
ASPインラインタグを使用します
最初のテストでは、インラインASPタグ<%= x%>を使用することが含まれます。ここで、xは割り当てられた変数です。この方法は、実行が最も簡単であり、ページのHTML部分を読みやすい形式で保持します。
| <%オプションは明示的です dim firstName DIM LASTNAME Dim MiddleInitial DIMアドレス 薄暗い街 薄暗い状態 薄暗い電話 Dim FaxNumber 薄暗い電子メール 薄暗い生年月日 FirstName = John MiddleInitial = q lastname = public 住所= 100メインストリート 市=ニューヨーク state = ny PhoneNumber = 1-212-555-1234 FaxNumber = 1-212-555-1234 email = [email protected] 生年月日= 1950年1月1日 %> <html> <head> <title>応答テスト</ title> </head> <body> <h1>応答テスト</h1> <表> <tr> <td> <b>名:</b> </td> <td> <%= firstName%> </td> </tr> <tr> <td> <b>ミドルイニシャル:</b> </td> <td> <%= middleInitial%> </td> </tr> <tr> <td> <b>姓:</b> </td> <td> <%= lastName%> </td> </tr> <tr> <td> <b>アドレス:</b> </td> <td> <%= address%> </td> </tr> <tr> <td> <b>都市:</b> </td> <td> <%= city%> </td> </tr> <tr> <td> <b>状態:</b> </td> <td> <%= state%> </td> </tr> <tr> <td> <b>電話番号:</b> </td> <td> <%= phoneNumber%> </td> </tr> <tr> <td> <b>ファックス番号:</b> </td> <td> <%= faxNumber%> </td> </tr> <tr> <td> <b>メール:</b> </td> <td> <%= email%> </td> </tr> <tr> <td> <b>生年月日:</b> </td> <td> <%= birthdate%> </td> </tr> </table> </body> </html> |
/app1/response1.aspの完全なコード
以前のベスト(回答率)= 8.28ミリ秒/ページ
HTMLの各行でRespons..writeステートメントを使用します
多くのより良い学習文書は、以前の方法を回避することを推奨しています。主な理由は、出力ページと反応時間を適用する処理ページで、Webサーバーが純粋なHTMLと処理スクリプトの送信との間に変換する必要がある場合、コンテキスト変換と呼ばれる問題が発生することです。ほとんどのプログラマーがこれを聞くと、彼らの最初の反応は、元のHTMLのすべてのラインをResponse.write関数に包むことです。
| … respons.write(<html>) respons.write(<head>) Response.write(<title> response test </title>) respons.write(</head>) respons.write(<body>) Response.Write(<H1>応答テスト</h1>) Response.Write(<table>) Response.Write(<tr> <td> <b>名:</b> </td> <td>&firstName&</td> </tr>) Response.Write(<tr> <td> <b>ミドルイニシャル:</b> </td> <td>&middleInitial&</td> </tr>) ... < |
/APP1/response2.aspフラグメント
以前のベスト(回答率)= 8.28ミリ秒/ページ
反応時間= 8.08ミリ秒/ページ
差= -0.20ミリ秒(2.4%の削減)
このアプローチを使用すると、インラインタグ付けの使用と比較して、パフォーマンスは非常に少ないことがわかります。おそらく、ページがサーバーに多くの小さな関数呼び出しをロードしているためです。このアプローチの最大の欠点は、HTMLがスクリプトに埋め込まれているため、スクリプトコードがより冗長になり、読み取りと維持がより困難になることです。
共有:ASPプログラミングの20の非常に便利な例(i) 1. ASPを使用してWebサイトの仮想物理パスを決定する方法回答:Mappathメソッドを使用:<%= server.mappath()%> 2。ユーザーが使用しているブラウザをどのように知ることができますか?回答:リクエストオブジェクトメソッドを使用してください:
前のページの5ページ12345Nextページ