Ant任务


JProfiler提供的Ant任务与Gradle任务非常相似。 本章强调了与Gradle任务的不同之处,并展示了每个Ant任务的例子。

所有的Ant任务都包含在归档文件bin/ant.jar中。为了让Ant可以使用任务, 你必须首先插入一个taskdef元素,告诉Ant在哪里可以找到任务定义。 下面的所有示例都包含了taskdef。它在每个构建文件必须只能出现一次,并且可以出现在项目元素下面的任何地方。

无法将ant.jar归档复制到Ant发行版的lib 文件夹, 你必须在任务定义中引用JProfiler的完整安装。

从Ant分析

com.jprofiler.ant.ProfileTask 是由内置的Java 任务派生出来的, 支持它的所有属性和嵌套元素。额外的属性与ProfileJava 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" sessionid="80">
        <classpath>
          <fileset dir="lib" includes="*.jar" />
        </classpath>
      </profile>
    </target>

从快照中导出数据

通过com.jprofiler.ant.ExportTask ,你可以从快照导出视图, 就像Export Gradle任务。 视图的指定方式与Gradle任务不同:它们直接嵌套在task元素下面,选项是用嵌套的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>