4

JSPの全体的なパフォーマンスを測定し、JSP内で最も時間が費やされている特定の領域をさらに絞り込んで特定するために、JSPのセットを変更するためにどのような手法を使用できますか?

私の現在のアプローチは、スクリプトレットとSystem.currentTimeMillis()を使用することです。

JSPのトップ

<%
StringBuilder result = new StringBuilder();
long startTime = System.currentTimeMillis();
%>

...ここにJSPコード

<%
long duration = System.currentTimeMillis() - startTime;
if (duration > 100L) { //over  100 ms
    result.append("JSP page took "+duration+"ms");
}
%>
<!-- <%=result%> -->

しかし、これに関する問題は次のとおりです。

  • このパフォーマンスコードで汚染されたJSP、
  • 貼り付けたコードを複数のJSPにコピーします。
  • 結果変数はすでに複数のJSPで定義されているため、JSPが<%@ include ...%>に含まれている場合はうまく機能しません。
4

1 に答える 1

5

#1-黄金律-JSPにロジックを入れないでください。カスタムタグを作成します。ロジックをJavaコードに抽出します。JSPはプレゼンテーション層です。

#2-プロファイラー(jvisualvmまたはさらに良い:yourkitなど)でサーブレットコンテナを実行します。これにより、時間が費やされた場所が正確にわかります

注-現在、「プロファイラーでアプリを実行する」必要はありません-JDK6 +を使用している場合は、kitまたはjvisualvm(JDKに付属)をポップオープンして、実行中に魔法のように接続できます。本当に便利です。

于 2012-05-04T16:54:36.773 に答える