author | mcherkas |
Tue, 12 Aug 2014 19:02:51 +0400 | |
changeset 26345 | 3586cdbe1c58 |
parent 24768 | ae21f28f0ddc |
child 34732 | 6605efbe8447 |
permissions | -rw-r--r-- |
<?xml version="1.0" encoding="UTF-8"?> <!-- Copyright (c) 2010, 2014, Oracle and/or its affiliates. All rights reserved. DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. This code is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 only, as published by the Free Software Foundation. This code is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License version 2 for more details (a copy is included in the LICENSE file that accompanied this code). You should have received a copy of the GNU General Public License version 2 along with this work; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA or visit www.oracle.com if you need additional information or have any questions. --> <project name="nashorn-benchmarks" default="all" basedir=".." xmlns:if="ant:if"> <!-- Below are the octane benchmarks that should be run. The ones that are excluded, as Nashorn currently has some issues with them (functionality or performance) are commented out --> <!-- box2d --> <target name="octane-box2d" depends="octane-box2d-nashorn"/> <target name="octane-box2d-nashorn" depends="jar"> <run-one cond="octane.benchmark.box2d" runtime="nashorn"/> </target> <target name="octane-box2d-v8" depends="jar"> <run-one cond="octane.benchmark.box2d" runtime="v8"/> </target> <target name="octane-box2d-rhino" depends="jar"> <run-one cond="octane.benchmark.box2d" runtime="rhino"/> </target> <!-- code-load --> <target name="octane-code-load" depends="octane-code-load-nashorn"/> <target name="octane-code-load-nashorn" depends="jar"> <run-one cond="octane.benchmark.code-load" runtime="nashorn"/> </target> <target name="octane-code-load-v8" depends="jar"> <run-one cond="octane.benchmark.code-load" runtime="v8"/> </target> <target name="octane-code-load-rhino" depends="jar"> <run-one cond="octane.benchmark.code-load" runtime="rhino"/> </target> <!-- crypto --> <target name="octane-crypto" depends="octane-crypto-nashorn"/> <target name="octane-crypto-nashorn" depends="jar"> <run-one cond="octane.benchmark.crypto" runtime="nashorn"/> </target> <target name="octane-crypto-v8" depends="jar"> <run-one cond="octane.benchmark.crypto" runtime="v8"/> </target> <target name="octane-crypto-rhino" depends="jar"> <run-one cond="octane.benchmark.crypto" runtime="rhino"/> </target> <!-- deltablue --> <target name="octane-deltablue" depends="octane-deltablue-nashorn"/> <target name="octane-deltablue-nashorn" depends="jar"> <run-one cond="octane.benchmark.deltablue" runtime="nashorn"/> </target> <target name="octane-deltablue-v8" depends="jar"> <run-one cond="octane.benchmark.deltablue" runtime="v8"/> </target> <target name="octane-deltablue-rhino" depends="jar"> <run-one cond="octane.benchmark.deltablue" runtime="rhino"/> </target> <!-- earley-boyer --> <target name="octane-earley-boyer" depends="octane-earley-boyer-nashorn"/> <target name="octane-earley-boyer-nashorn" depends="jar"> <run-one cond="octane.benchmark.earley-boyer" runtime="nashorn"/> </target> <target name="octane-earley-boyer-v8" depends="jar"> <run-one cond="octane.benchmark.earley-boyer" runtime="v8"/> </target> <target name="octane-earley-boyer-rhino" depends="jar"> <run-one cond="octane.benchmark.earley-boyer" runtime="rhino"/> </target> <!-- gbemu --> <target name="octane-gbemu" depends="octane-gbemu-nashorn"/> <target name="octane-gbemu-nashorn" depends="jar"> <run-one cond="octane.benchmark.gbemu" runtime="nashorn"/> </target> <target name="octane-gbemu-v8" depends="jar"> <run-one cond="octane.benchmark.gbemu" runtime="v8"/> </target> <target name="octane-gbemu-rhino" depends="jar"> <run-one cond="octane.benchmark.gbemu" runtime="rhino"/> </target> <!-- mandreel --> <target name="octane-mandreel" depends="octane-mandreel-nashorn"/> <target name="octane-mandreel-nashorn" depends="jar"> <run-one cond="octane.benchmark.mandreel" runtime="nashorn"/> </target> <target name="octane-mandreel-v8" depends="jar"> <run-one cond="octane.benchmark.mandreel" runtime="v8"/> </target> <target name="octane-mandreel-rhino" depends="jar"> <run-one cond="octane.benchmark.mandreel" runtime="rhino"/> </target> <!-- navier-stokes --> <target name="octane-navier-stokes" depends="octane-navier-stokes-nashorn"/> <target name="octane-navier-stokes-nashorn" depends="jar"> <run-one cond="octane.benchmark.navier-stokes" runtime="nashorn"/> </target> <target name="octane-navier-stokes-v8" depends="jar"> <run-one cond="octane.benchmark.navier-stokes" runtime="v8"/> </target> <target name="octane-navier-stokes-rhino" depends="jar"> <run-one cond="octane.benchmark.navier-stokes" runtime="rhino"/> </target> <!-- pdfjs --> <target name="octane-pdfjs" depends="octane-pdfjs-nashorn"/> <target name="octane-pdfjs-nashorn" depends="jar"> <run-one cond="octane.benchmark.pdfjs" runtime="nashorn"/> </target> <target name="octane-pdfjs-v8" depends="jar"> <run-one cond="octane.benchmark.pdfjs" runtime="v8"/> </target> <target name="octane-pdfjs-rhino" depends="jar"> <run-one cond="octane.benchmark.pdfjs" runtime="rhino"/> </target> <!-- raytrace --> <target name="octane-raytrace" depends="octane-raytrace-nashorn"/> <target name="octane-raytrace-nashorn" depends="jar"> <run-one cond="octane.benchmark.raytrace" runtime="nashorn"/> </target> <target name="octane-raytrace-v8" depends="jar"> <run-one cond="octane.benchmark.raytrace" runtime="v8"/> </target> <target name="octane-raytrace-rhino" depends="jar"> <run-one cond="octane.benchmark.raytrace" runtime="rhino"/> </target> <!-- regexp --> <target name="octane-regexp" depends="octane-regexp-nashorn"/> <target name="octane-regexp-nashorn" depends="jar"> <run-one cond="octane.benchmark.regexp" runtime="nashorn"/> </target> <target name="octane-regexp-v8" depends="jar"> <run-one cond="octane.benchmark.regexp" runtime="v8"/> </target> <target name="octane-regexp-rhino" depends="jar"> <run-one cond="octane.benchmark.regexp" runtime="rhino"/> </target> <!-- richards --> <target name="octane-richards" depends="octane-richards-nashorn"/> <target name="octane-richards-nashorn" depends="jar"> <run-one cond="octane.benchmark.richards" runtime="nashorn"/> </target> <target name="octane-richards-v8" depends="jar"> <run-one cond="octane.benchmark.richards" runtime="v8"/> </target> <target name="octane-richards-rhino" depends="jar"> <run-one cond="octane.benchmark.richards" runtime="rhino"/> </target> <!-- splay --> <target name="octane-splay" depends="octane-splay-nashorn"/> <target name="octane-splay-nashorn" depends="jar"> <run-one cond="octane.benchmark.splay" runtime="nashorn"/> </target> <target name="octane-splay-v8" depends="jar"> <run-one cond="octane.benchmark.splay" runtime="v8"/> </target> <target name="octane-splay-rhino" depends="jar"> <run-one cond="octane.benchmark.splay" runtime="rhino"/> </target> <!-- typescript --> <target name="octane-typescript" depends="octane-typescript-nashorn"/> <target name="octane-typescript-nashorn" depends="jar"> <run-one cond="octane.benchmark.typescript" runtime="nashorn"/> </target> <target name="octane-typescript-v8" depends="jar"> <run-one cond="octane.benchmark.typescript" runtime="v8"/> </target> <target name="octane-typescript-rhino" depends="jar"> <run-one cond="octane.benchmark.typescript" runtime="rhino"/> </target> <!-- zlib --> <target name="octane-zlib" depends="octane-zlib-nashorn"/> <target name="octane-zlib-nashorn" depends="jar"> <run-one cond="octane.benchmark.zlib" runtime="nashorn"/> </target> <target name="octane-zlib-v8" depends="jar"> <run-one cond="octane.benchmark.zlib" runtime="v8"/> </target> <target name="octane-zlib-rhino" depends="jar"> <run-one cond="octane.benchmark.zlib" runtime="rhino"/> </target> <!-- Benchmark runners for one or more benchmarks, single or multiple process --> <target name="octane-process-separate" if="${octane-test-sys-prop.separate.process}"> <echo message="Running each benchmark in separate processes, starting new JVMs for each."/> <script language="javascript"><![CDATA[ var props = []; for (var prop in project.getProperties()) { if (prop.startsWith("octane.benchmark.")) { props.push(prop); } } //sort benchmark props in alphabetical order by name props.sort(function(a, b) { if (a < b) { return -1; } else if (a > b) { return 1; } else { return 0; } }); var runtime = project.getProperty("runtime"); for (var i in props) { var task = project.createTask("run-one"); // workaround for https://issues.apache.org/bugzilla/show_bug.cgi?id=53831, still not fixed if (task.getOwningTarget() == null) { task.setOwningTarget(self.getOwningTarget()); } var prop = props[i]; task.setDynamicAttribute("cond", prop); task.setDynamicAttribute("runtime", runtime); task.perform(); } ]]></script> </target> <target name="octane-process-single" unless="${octane-test-sys-prop.separate.process}"> <echo message="Running all benchmarks in the same process."/> <pathconvert property="octane.benchmarks" pathsep=" "> <propertyset> <propertyref prefix="octane.benchmark."/> </propertyset> </pathconvert> <antcall target="run-octane${runtime}"> <param name="octane-tests" value="${octane.benchmarks}"/> </antcall> </target> <!-- run 'octane' in single or separate processes based on config This uses nashorn as the default runtime --> <target name="octane-nashorn" depends="jar"> <property name="runtime" value="nashorn"/> <antcall target="octane-process-separate"/> <antcall target="octane-process-single"/> </target> <!-- alias for 'octane' --> <target name="octane" depends="octane-nashorn"/> <!-- run octane benchmarks using octane as runtime --> <target name="octane-v8" depends="jar"> <property name="runtime" value="v8"/> <antcall target="octane-process-separate"/> <antcall target="octane-process-single"/> </target> <!-- run octane benchmarks using Rhino as runtime --> <target name="octane-rhino" depends="jar"> <property name="runtime" value="rhino"/> <antcall target="octane-process-separate"/> <antcall target="octane-process-single"/> </target> <macrodef name="run-one"> <attribute name="cond"/> <attribute name="runtime" default=""/> <sequential> <antcall target="run-octane-@{runtime}" if:set="@{cond}"> <param name="octane-tests" value="${@{cond}}"/> </antcall> </sequential> </macrodef> <target name="run-octane-nashorn"> <java classname="${nashorn.shell.tool}" classpath="${run.test.classpath}" fork="true" dir="."> <jvmarg line="${ext.class.path}"/> <jvmarg line="${run.test.jvmargs.octane} -Xms${run.test.xms} -Xmx${run.test.xmx}"/> <!-- pass on all properties prefixed with 'nashorn' to the runtime --> <syspropertyset> <propertyref prefix="nashorn."/> </syspropertyset> <arg value="${octane-test-sys-prop.test.js.framework}"/> <arg value="-scripting"/> <arg value="--"/> <arg value="${octane-tests}"/> <arg value="--runtime"/> <arg value="nashorn"/> <arg value="--verbose"/> <arg value="--iterations ${octane.iterations}"/> </java> </target> <target name="run-octane-v8"> <exec executable="${v8.shell}"> <arg value="${octane-test-sys-prop.test.js.framework}"/> <arg value="--"/> <arg value="${octane-tests}"/> <arg value="--runtime"/> <arg value="v8"/> <arg value="--verbose"/> <arg value="--iterations ${octane.iterations}"/> </exec> </target> <target name="run-octane-rhino"> <java jar="${rhino.jar}" classpath="${run.test.classpath}" fork="true" dir="."> <jvmarg line="${run.test.jvmargs.octane} -Xms${run.test.xms} -Xmx${run.test.xmx}"/> <arg value="-opt"/> <arg value="9"/> <arg value="${octane-test-sys-prop.test.js.framework}"/> <arg value="${octane-tests}"/> <arg value="--runtime"/> <arg value="rhino"/> <arg value="--verbose"/> <arg value="--iterations ${octane.iterations}"/> </java> </target> <!-- run octane with all known runtimes for comparison --> <target name="octane-all" depends="octane, octane-v8, octane-rhino"> <exec executable="${v8.shell}"> <arg value="${octane-test-sys-prop.test.js.framework}"/> <arg value="${octane-tests}/"/> </exec> </target> <target name="sunspider-init" depends="jar"> <fileset id="sunspider-set" dir="${sunspider-test-sys-prop.test.js.roots}" excludes="${sunspider-test-sys-prop.test.js.exclude.list}"> <include name="**/*.js"/> </fileset> <pathconvert pathsep=" " property="sunspider-tests" refid="sunspider-set"/> </target> <!--- SUNSPIDER JOB BELOW --> <!-- run sunspider with Nashorn --> <target name="sunspider" depends="sunspider-nashorn"/> <target name="sunspider-nashorn" depends="sunspider-init"> <java classname="${nashorn.shell.tool}" classpath="${run.test.classpath}" fork="true" dir="."> <jvmarg line="${ext.class.path}"/> <jvmarg line="${run.test.jvmargs} -Xmx${run.test.xmx}"/> <arg value="-timezone=PST"/> <arg value="--class-cache-size=50"/> <arg value="${sunspider-test-sys-prop.test.js.framework}"/> <arg value="--"/> <arg value="${sunspider-tests}/"/> <arg value="--verbose"/> <arg value="--times"/> <arg value="${sunspider.iterations}"/> </java> </target> <!-- run sunspider with v8 --> <target name="sunspider-v8" depends="sunspider-init"> <exec executable="${v8.shell}"> <arg value="${sunspider-test-sys-prop.test.js.framework}"/> <arg value="--"/> <arg value="${sunspider-tests}/"/> <arg value="--verbose"/> <arg value="--times"/> <arg value="${sunspider.iterations}"/> </exec> </target> <!-- run sunspider with Rhino --> <target name="sunspider-rhino" depends="sunspider-init"> <java jar="${rhino.jar}" classpath="${run.test.classpath}" fork="true" dir="."> <jvmarg line="${run.test.jvmargs} -Xmx${run.test.xmx}"/> <arg value="-opt"/> <arg value="9"/> <arg value="${sunspider-test-sys-prop.test.js.framework}"/> <arg value="${sunspider-tests}/"/> <arg value="--verbose"/> <arg value="--times"/> <arg value="${sunspider.iterations}"/> </java> </target> </project>