2012-05-04 12 views
4

JSPの全体的なパフォーマンスを測定し、最も時間のかかるJSP内の特定の領域をさらに絞り込んで識別するために、一連のJSPを変更するためにどのようなテクニックを使用できますか? JSP低速な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%> --> 

しかし、問題の

トップ:

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

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

Eclipseを使用している場合は、プロファイリングツールがあります。 – Ivan

+0

... MacOSでEclipseを使用している場合を除いて、--( – DerMike

答えて

5

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

#2 - プロファイラ内のサーブレットコンテナを実行します(jvisualvmまたはそれ以上の方:yourkit)。これは、時間の正確な使用場所を教えてくれるでしょう

注 - 現在、「プロファイラでアプリケーションを実行する」必要はありません.JDK6 +を使用している場合は、yourkitまたはjvisualvm(JDKに付属)を開くことができ、実行中です。それは本当に便利です。

+0

これはいくつかの素晴らしいヒントです。実際のデータに接続するとパフォーマンスが低下するだけでなく、ローカル開発環境がそれが欠如しているため、偽のデータセットや些細なデータセットにしか添付されていない場合には高速に見えるので、ローカルにプロファイルするのが難しくなります。これらの提案を試す予定です。 – fourgablesguy

関連する問題