Ant Tasks
JProfiler 提供的 Ant 任务与 Gradle 任务非常相似。本章重点介绍与 Gradle 任务的区别,并展示每个 Ant 任务的示例。
所有 Ant 任务都包含在 bin/ant.jar
存档中。为了使任务可用于 Ant,您必须首先插入一个 taskdef
元素,告诉 Ant
在哪里可以找到任务定义。下面的所有示例都包含该 taskdef。它在每个构建文件中只能出现一次,并且可以出现在项目元素下的任何级别。
无法将 ant.jar
存档复制到 Ant 分发版的 lib
文件夹中,您必须在任务定义中引用 JProfiler 的完整安装。
Profiling from 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>
Exporting data from snapshots
使用 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>
Comparing snapshots
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>
Analyzing heap snapshots
与 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>