2011-04-13 6 views
3

Struts2 + Spring 3.x + Hibernate 3.x를 사용하여 사전 작성된 웹 응용 프로그램에서 작업하고 있습니다. 잠재적 인 문제를 피하기 위해 프로파일 링 도구를 사용할 것을 고려하고 있습니다. 몇 가지 조사를하고있는 동안하는 것은이 두 후보를 내놓았다 있도록Java 기반 웹 응용 프로그램 용 프로파일 링 도구

내가이 지역에 새로운 오전

  • JProfiler와
  • VisualVM과

어떤이있는 경우이 두 가지에 대한 의견을 제공하거나하시기 바랍니다 다른 좋은 후보자는 건의하십시오. 나는 이것에 관해서 몇 가지 더 많은 질의를 또한 가지고있다.

  1. 프로젝트가 아직 중간에 있기 때문에 관련성이 얼마나 있는가? 우리가 에 처음이를 사용하기 때문에
  2. 은 개발 시스템은 그래서 난 는 생산 의 복제 생각하지 않고 생산 단지 범위에서 많은 문제가있을 수 있습니다. 운영체제는 준비하고 생산은 리눅스를 기반으로합니다 동안 기반 창 될 개발 시스템의 대부분과 같은 결과를 프로파일에 차이 을 할 수 있습니다 얼마나
  3. .

귀중한 의견을 보내주십시오.

답변

3

JProfiler로 이동하십시오. 나는 이것을 3 년 동안 사용해 왔으며, 특히 CPU 프로파일 링에있어서 정말 굉장합니다. VisualVM은 JProfile이하는 일종의 드릴 다운을 제공하지 않습니다. 또한 J2EE 구성 요소를 인식하고 정확한 SQL을 플로우에 제공합니다. 이는 내 경험으로 볼 때 성능 문제의 95 %가 무책임하고 불필요한 DB 히트에서 비롯되는 것이 중요합니다.

당신이 Hibernate를 사용하고 있기 때문에, 프로파일 링은 당신이 게으른 로딩을 가능하게 할 때와 객체, 쿼리 및 연관 캐싱을 언제 가능하게 할 것인지를 식별하는데 도움이 될 것이다. 당신이 그것을 잘 수행되지 느낀다면 프로젝트를 준비

  1. 그것은 중요하지 않습니다 무엇

    다른 질문에 대한 답변은,이다, 프로파일 링은 당신을위한 관련이 있습니다. 문제가 핵심 구성 요소를 설계하는 데있어 응용 프로그램 전체에 퍼질 가능성이 있으며 이후 단계에서 문제를 해결하기가 어려울 수 있으므로 지연하지 마십시오.

  2. 뒤 피모의 대답.

  3. 많은 차이가 있습니다. 동일한 구성의 Linux 시스템은 대개 Windows 시스템보다 훨씬 빠르고 반응이 좋습니다. 그러나 duffymo가 대답 할 때, 프로파일 링은 핫스팟과 각 구성 요소 및 방법에 소요되는 시간의 비율을 제공합니다. 프로파일 링을 위해 인스트루먼트 된 어플리케이션 클래스는 일반적인 시나리오 (JProfiler를 사용한 경험)보다 적어도 50 % 느립니다.

+0

+1 귀중한 의견을 들려주는 Adi –

0

VisualVM은 훌륭한 도구입니다. Sun/Oracle의 JDK 다운로드와 함께 번들로 제공되는 것을 믿을 수 없습니다. JDK 6 이상을 사용하는 것이 좋습니다. 응용 프로그램의 PID를 가져 와서 VisualVM에 지정하면됩니다. 나머지는 할거야.

는 여기에 귀하의 질문에 대한 답변은 다음과 같습니다 프로젝트가 중간에 여전히 같은 프로파일 러를 사용하는 방법 관련

.

여기에 무슨 뜻인지 확실하지 않습니다. 프로파일 러가 성능에 미치는 부정적인 영향에 대해 묻고 있다고 가정합니다. 절대적인 숫자가 아닌 상대적인 영향을 확인하고 있습니다. 성과를 기준으로 변화를 만들고 재 측정하십시오. 프로파일 러는 둘 다 동일합니다. 우리가 에 처음이를 사용하기 때문에

은 개발 시스템은 그래서 난 는 생산 의 복제 생각하지 않습니다 및 생산 단지 범위를 벗어나 을 많은 문제가있을 수 있습니다.

측정하는 시스템에 대해서만 학습하게됩니다. 개발이 프로덕션과 다른 경우, 수행 할 수있는 최선의 방법은 절대 값이 아닌 변경의 상대적인 영향입니다.

운영체제가 개발 시스템의 대부분으로 프로파일 링 결과에 차이가 준비 및 생산 가 리눅스를 기반으로합니다 동안 기반 창 될 것입니다 수 있습니다 얼마나.

걱정한다면 Windows와 Linux에서 벤치마킹 할 수 있습니다. 내 짐작으로는 무시할 만하지만 일회 측정으로 확인하거나 부정합니다.

0

Eclipse를 사용하고 Eclipse에서 개발 서버를 시작하는 경우 잠금이 Eclipse TPTP 인 것보다.

+0

@TPTP 좋은 옵션이 될 수도 있지만 내가 –

+0

@umesh awasthi 시스템을 설정하는 것보다 프로파일에 더 많은 시간을 보내고 사랑 포럼 및 articles..i 대부분의 읽기로는 복잡한 설정주기를 가지고 : 나는 다른 도구와 비교할 수 없으며, 올바르게 기억할 때 그와 같은 문제는 아니 었습니다. (1 년 전) – Ralph

+0

내가 말한 것은 내가 정직하게 읽은 것입니다. 나는 직접 사용하지 않았습니다. 내 손을 확실히 시험해 볼 것입니다. –

0

저는이 두 가지 경험이 없지만 많은 웹 응용 프로그램 (서블릿 컨테이너와 게임 서버 플랫폼 모두)을 실행합니다. 우리의 개발 및 프로덕션 서버에는 Linux와 BSD가 혼합되어 있으며, 개발자는 Linux, MacOS, Windows 등 모든 기능을 갖추고 있습니다.

프로파일 링 요구 사항에 대해서는 Yourkit (http://www.yourkit.com/)을 사용합니다. 일반적으로 병목 현상 등을 파악하기 위해 프로파일 링 작업을 많이 수행하지는 않지만 (교착 상태를 찾아 냈음에도 불구하고) 교착 상태, 메모리 누수, 퍼간젠 문제 등을 발견하는 훌륭한 도구로 밝혀졌습니다.

프로덕션 서버에서 전체 시간에 영향을 미치지 않는 모드로 실행되므로 필요할 때마다 스냅 샷을 얻을 수 있고 개발의 모든 단계에서이 솔루션을 사용할 수 있습니다.

0

NetBeans에 내장 된 프로파일 러에 대해 아주 좋은 경험이 있습니다.

VisualVM의 프로파일 러는 NetBeans 프로파일 러의 최신 버전입니다.

관련 문제