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>