JProfiler 도움말

Ant 태스크

JProfiler에서 제공하는 Ant 태스크는 Gradle 태스크와 매우 유사합니다. 이 장에서는 Gradle 태스크와의 차이점을 중점적으로 설명하고 각 Ant 태스크에 대한 예제를 보여줍니다.

모든 Ant 태스크는 bin/ant.jar 아카이브에 포함되어 있습니다. Ant에서 태스크를 사용할 수 있도록 하려면, 먼저 Ant에 태스크 정의 위치를 알려주는 taskdef 요소를 삽입해야 합니다. 아래의 모든 예제에는 이 taskdef가 포함되어 있습니다. 이는 빌드 파일당 한 번만 나타나야 하며, project 요소 아래의 어떤 레벨에든 위치할 수 있습니다.

ant.jar 아카이브를 Ant 배포판의 lib 폴더로 복사하는 것은 지원되지 않으므로, 태스크 정의에서 JProfiler 전체 설치 디렉터리를 참조해야 합니다. Gradle 및 Maven 연동과 달리, Ant 태스크는 JProfiler 배포판을 자동으로 프로비저닝하지 않습니다.

Ant에서 프로파일링

com.jprofiler.ant.ProfileTask는 기본 제공되는 Java 태스크에서 파생되었으며 해당 태스크의 모든 속성과 중첩 요소를 지원합니다. 추가 속성은 JavaProfile Gradle 태스크와 동일합니다. Ant 속성은 대소문자를 구분하지 않으며 일반적으로 소문자로 작성됩니다. 여러 값을 허용하는 속성의 경우 구분 기호로 : 또는 ,를 사용하십시오.

<taskdef name="profile"
         classname="com.jprofiler.ant.ProfileTask"
         classpath="<path to JProfiler installation>/bin/ant.jar"/>

<target name="profile">
  <profile classname="MyMainClass" offline="true"
           calltreemode="sampling" profile="com.mycorp.:org.example."
           snapshotfile="snapshots/run.jps" recording="cpu:allocation:jdbc"
           duration="10m">
    <classpath>
      <fileset dir="lib" includes="*.jar" />
    </classpath>
  </profile>
</target>

스냅샷에서 데이터 내보내기

com.jprofiler.ant.ExportTask를 사용하면 Export Gradle 태스크와 마찬가지로 스냅샷에서 뷰를 내보낼 수 있습니다. 뷰는 Gradle 태스크와 다르게 지정됩니다. 태스크 요소 바로 아래에 직접 중첩되며, 옵션은 중첩된 option 요소로 지정됩니다.

<taskdef name="export"
         classname="com.jprofiler.ant.ExportTask"
         classpath="<path to JProfiler installation>/bin/ant.jar"/>

<target name="export">
  <export snapshotfile="snapshots/test.jps">
    <view name="CallTree" file="calltree.html"/>
    <view name="HotSpots" file="hotspots.html">
      <option name="expandbacktraces" value="true"/>
      <option name="aggregation" value="class"/>
    </view>
  </export>
</target>

스냅샷 비교

com.jprofiler.ant.CompareTask는 Compare Gradle 태스크에 해당하며 둘 이상의 스냅샷 간 비교를 수행합니다. com.jprofiler.ant.ExportTask와 마찬가지로 비교는 요소 바로 아래에 직접 중첩되며, 옵션은 각 comparison 요소에 중첩됩니다. 스냅샷 파일은 중첩된 파일 세트로 지정됩니다.

<taskdef name="compare"
         classname="com.jprofiler.ant.CompareTask"
         classpath="<path to JProfiler installation>/bin/ant.jar"/>

<target name="compare">
  <compare sortbytime="true">
    <fileset dir="snapshots">
      <include name="*.jps" />
    </fileset>
    <comparison name="TelemetryHeap" file="heap.html"/>
    <comparison name="TelemetryThreads" file="threads.html">
      <option name="measurements" value="inactive,active"/>
      <option name="valuetype" value="bookmark"/>
      <option name="bookmarkname" value="test"/>
    </comparison>
  </compare>
</target>

힙 스냅샷 분석

Analyze Gradle 태스크와 마찬가지로, Ant에 해당하는 com.jprofiler.ant.AnalyzeTask는 오프라인 프로파일링으로 저장된 스냅샷에서 GUI를 통한 빠른 접근이 가능하도록 힙 스냅샷 분석을 준비합니다. 처리할 스냅샷은 중첩된 파일 세트로 지정됩니다.

<taskdef name="analyze"
         classname="com.jprofiler.ant.AnalyzeTask"
         classpath="<path to JProfiler installation>/bin/ant.jar"/>

<target name="analyze">
  <analyze>
    <fileset dir="snapshots" includes="*.jps" />
  </analyze>
</target>