2012-05-04 5 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에서 이클립스를 사용하는 경우를 제외하고는 :-( – DerMike

답변

5

# 1 - 황금률 - JSP에 로직을 넣지 마십시오. 맞춤 태그를 작성하십시오. 논리 코드를 java 코드로 추출하십시오. JSP는 프리젠 테이션 레이어입니다.

# 2 - 프로파일 러 (jvisualvm 또는 더 나은 것 : yourkit)에서 서블릿 컨테이너를 실행하십시오. 이것은 정확히 어디에서 시간을 보냈는지 말해 줄 것입니다.

주 - 요즘에는 "프로파일 러에서 응용 프로그램을 실행할 필요가 없습니다"- JDK6 +를 사용하는 경우 yourkit 또는 jvisualvm (JDK와 함께 제공)을 열어 마술로 붙일 수 있습니다 실행 중입니다. 정말 편리합니다.

+0

이 정보는 몇 가지 유용한 정보입니다. 실제 데이터에 연결하면 성능이 느려지고 지역 개발 환경은 그러한 정보가 부족하고 가짜 또는 사소한 데이터 세트에만 첨부되었을 때 빠르게 보이는 것처럼 로컬로 프로파일 링하는 것은 어려워집니다. 이러한 제안을 시도해 볼 계획입니다. 감사합니다. – fourgablesguy

관련 문제