Changeset 220752 in webkit
- Timestamp:
- Aug 15, 2017 1:11:57 PM (7 years ago)
- Location:
- trunk/PerformanceTests
- Files:
-
- 19 added
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/PerformanceTests/ChangeLog
r220502 r220752 1 2017-08-15 Michael Saboff <msaboff@apple.com> 2 3 Add Offline Assembler parsing test to RexBench 4 https://bugs.webkit.org/show_bug.cgi?id=175581 5 6 Reviewed by Saam Barati. 7 8 This is a port of the JavaScriptCore offline assmebler's lexer, parser, AST and 9 supporting code from Ruby to JavaScript turned into a benchmark. The benchmark 10 timing includes parsing through AST. The validation processing time is not 11 part of the benchmark measurement. 12 13 The input data is the current tip of tree LLInt .asm source files. Those file 14 were converted to JavaScript using the python script, convert_asm_to_js.py. 15 There is also a new JavaScript file, generate_expected.js, to create the 16 expected output JavaScript file. 17 18 * RexBench/OfflineAssembler: Added. 19 * RexBench/OfflineAssembler/ast.js: Added. 20 * RexBench/OfflineAssembler/instructions.js: Added. 21 * RexBench/OfflineAssembler/parser.js: Added. 22 * RexBench/OfflineAssembler/registers.js: Added. 23 These are JavaScript translation of the Ruby Offline Assembler. Code not 24 needed for the benchmark was not translated and therefore missing. 25 26 * RexBench/OfflineAssembler/InitBytecodes.asm: Added. 27 * RexBench/OfflineAssembler/InitBytecodes.js: Added. 28 * RexBench/OfflineAssembler/LowLevelInterpreter.asm: Added. 29 * RexBench/OfflineAssembler/LowLevelInterpreter.js: Added. 30 * RexBench/OfflineAssembler/LowLevelInterpreter32_64.asm: Added. 31 * RexBench/OfflineAssembler/LowLevelInterpreter32_64.js: Added. 32 * RexBench/OfflineAssembler/LowLevelInterpreter64.asm: Added. 33 * RexBench/OfflineAssembler/LowLevelInterpreter64.js: Added. 34 Copies of the current LLInt source and conversion to JavaScript. 35 36 * RexBench/OfflineAssembler/file.js: Added. 37 (File): 38 (File.open): 39 (File.prototype.read): 40 Mock File class used to simulate filesystem access. 41 42 * RexBench/OfflineAssembler/expected.js: Added. 43 Expected output of the AST dumped and split into individual lines. 44 45 * RexBench/OfflineAssembler/benchmark.js: Added. 46 (OfflineAssemblerBenchmark): 47 (OfflineAssemblerBenchmark.prototype.runOnce): 48 (OfflineAssemblerBenchmark.prototype.validate): 49 Benchmark sub class for this test. 50 51 * RexBench/OfflineAssembler/convert_asm_to_js.py: Added. 52 (convertFile): 53 Converts .asm into .js files compatible to the benchmark. 54 55 * RexBench/OfflineAssembler/generate_expected.js: Added. 56 Converts AST output into the expected file format. 57 58 * RexBench/about.html: Added description of this sub-benchmark test. 59 60 * RexBench/cli.js: 61 * RexBench/glue.js: 62 * RexBench/index.html: 63 * RexBench/offline_assembler_benchmark.js: Added. 64 Updates to add this sub-benchmark. 65 1 66 2017-08-09 Myles C. Maxfield <mmaxfield@apple.com> 2 67 -
trunk/PerformanceTests/RexBench/about.html
r220307 r220752 23 23 <p>Basic is the lexer / parser part of the benchmark test of the same name from the <a href="http://browserbench.org/ARES-6/">ARES-6</a> benchmark.</p> 24 24 25 <p>Offline Assembler is the lexer, parser and AST layer of the offline assembler for JavaScriptCore. It has been ported to JavaScript from the original Ruby.</p> 26 25 27 <p>Flight Planner is a newly written benchmark taken from a flight management web application. Flight Planner parses aircraft flight plans and computes distance, course and elapsed times for legs of flight plans as well as total time. It uses FAA data for airports, navigation aids and airways. The flight management app was originally written to help compete in a flying proficiency event. See <a href="http://www.hwdairrally.org/index.shtml">Hayward Air Rally</a>. 26 28 </p> -
trunk/PerformanceTests/RexBench/cli.js
r220485 r220752 53 53 load("octane2_benchmark.js"); 54 54 load("basic_benchmark.js"); 55 load("offline_assembler_benchmark.js"); 55 56 load("flightplan_benchmark.js"); 56 57 load("flightplan_unicode_benchmark.js"); -
trunk/PerformanceTests/RexBench/glue.js
r220307 r220752 40 40 41 41 { 42 const title = "RexBench 0.9 0";42 const title = "RexBench 0.92"; 43 43 if (isInBrowser) { 44 44 document.title = title; … … 51 51 driver.addBenchmark(Octane2RegExpBenchmarkRunner); 52 52 driver.addBenchmark(BasicBenchmarkRunner); 53 driver.addBenchmark(OfflineAssemblerBenchmarkRunner); 53 54 driver.addBenchmark(FlightPlannerBenchmarkRunner); 54 55 driver.addBenchmark(FlightPlannerUnicodeBenchmarkRunner); -
trunk/PerformanceTests/RexBench/index.html
r220307 r220752 116 116 </div> 117 117 118 <div class="offline assembler test"> 119 <h2 id="OfflineAssemblerMessage">Offline Assembler</h2> 120 121 <div class="score"> 122 <label>First Iteration</label> 123 <span id="OfflineAssemblerFirstIteration"> 124 <span class="value">0</span><span class="units">ms</span> 125 </span> 126 </div> 127 128 <div class="score"> 129 <label>Worst 4 Iteratons</label> 130 <span id="OfflineAssemblerAverageWorstCase"> 131 <span class="value">0</span><span class="units">ms</span> 132 </span> 133 </div> 134 135 <div class="score"> 136 <label>Average</label> 137 <span id="OfflineAssemblerSteadyState"> 138 <span class="value">0</span><span class="units">ms</span> 139 </span> 140 </div> 141 </div> 142 118 143 <div class="flight planner test"> 119 144 <h2 id="FlightPlannerMessage">Flight Planner</h2> … … 173 198 <script src="octane2_benchmark.js"></script> 174 199 <script src="basic_benchmark.js"></script> 200 <script src="offline_assembler_benchmark.js"></script> 175 201 <script src="flightplan_benchmark.js"></script> 176 202 <script src="flightplan_unicode_benchmark.js"></script>
Note: See TracChangeset
for help on using the changeset viewer.