Commit 1b5797d5 authored by Florian Sattler's avatar Florian Sattler Committed by Commit Bot

[parser] Adding more parsing js-perf tests

Bug: v8:7926
Change-Id: I32bfb4399d588b48ba3d00ff02ac0133dbd33e8b
Reviewed-on: https://chromium-review.googlesource.com/1179673
Commit-Queue: Florian Sattler <sattlerf@google.com>
Reviewed-by: 's avatarMarja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55203}
parent 932246f1
......@@ -1081,12 +1081,21 @@
"path": ["Parsing"],
"main": "run.js",
"flags": ["--no-compilation-cache", "--allow-natives-syntax"],
"resources": [ "comments.js"],
"resources": [ "comments.js", "strings.js", "arrowfunctions.js"],
"results_regexp": "^%s\\-Parsing\\(Score\\): (.+)$",
"tests": [
{"name": "OneLineComment"},
{"name": "OneLineComments"},
{"name": "MultiLineComment"}
{"name": "MultiLineComment"},
{"name": "SingleLineString"},
{"name": "SingleLineStrings"},
{"name": "MultiLineString"},
{"name": "ArrowFunctionShort"},
{"name": "ArrowFunctionLong"},
{"name": "CommaSepExpressionListShort"},
{"name": "CommaSepExpressionListLong"},
{"name": "CommaSepExpressionListLate"},
{"name": "FakeArrowFunction"}
]
},
{
......
// Copyright 2018 the V8 project authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
new BenchmarkSuite("ArrowFunctionShort", [2000], [
new Benchmark("ArrowFunctionShort", false, true, iterations, Run, ArrowFunctionShortSetup)
]);
new BenchmarkSuite("ArrowFunctionLong", [2000], [
new Benchmark("ArrowFunctionLong", false, true, iterations, Run, ArrowFunctionLongSetup)
]);
new BenchmarkSuite("CommaSepExpressionListShort", [2000], [
new Benchmark("CommaSepExpressionListShort", false, true, iterations, Run, CommaSepExpressionListShortSetup)
]);
new BenchmarkSuite("CommaSepExpressionListLong", [2000], [
new Benchmark("CommaSepExpressionListLong", false, true, iterations, Run, CommaSepExpressionListLongSetup)
]);
new BenchmarkSuite("CommaSepExpressionListLate", [2000], [
new Benchmark("CommaSepExpressionListLate", false, true, iterations, Run, CommaSepExpressionListLateSetup)
]);
new BenchmarkSuite("FakeArrowFunction", [2000], [
new Benchmark("FakeArrowFunction", false, true, iterations, Run, FakeArrowFunctionSetup)
]);
function ArrowFunctionShortSetup() {
code = "let a;\n" + "a = (a,b) => { return a+b; }\n".repeat(200)
}
function ArrowFunctionLongSetup() {
code = "let a;\n" + "a = (a,b,c,d,e,f,g,h,i,j) => { return a+b; }\n".repeat(200)
}
function CommaSepExpressionListShortSetup() {
code = "let a;\n" + "a = (a,1)\n".repeat(200)
}
function CommaSepExpressionListLongSetup() {
code = "let a; let b; let c;\n" + "a = (a,2,3,4,5,b,c,1,7,1)\n".repeat(200)
}
function CommaSepExpressionListLateSetup() {
code = "let a; let b; let c; let d; let e; let f; let g; let h; let i;\n"
+ "a = (a,b,c,d,e,f,g,h,i,1)\n".repeat(200)
}
function FakeArrowFunctionSetup() {
code = "let a; let b; let c; let d; let e; let f; let g; let h; let i; let j;\n"
+ "a = (a,b,c,d,e,f,g,h,i,j)\n".repeat(200)
}
function Run() {
if (code == undefined) {
throw new Error("No test data");
}
eval(code);
}
......@@ -2,22 +2,18 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
const iterations = 100;
new BenchmarkSuite('OneLineComment', [1000], [
new Benchmark('OneLineComment', false, true, iterations, Run, OneLineCommentSetup)
new BenchmarkSuite("OneLineComment", [1000], [
new Benchmark("OneLineComment", false, true, iterations, Run, OneLineCommentSetup)
]);
new BenchmarkSuite('OneLineComments', [1000], [
new Benchmark('OneLineComments', false, true, iterations, Run, OneLineCommentsSetup)
new BenchmarkSuite("OneLineComments", [1000], [
new Benchmark("OneLineComments", false, true, iterations, Run, OneLineCommentsSetup)
]);
new BenchmarkSuite('MultiLineComment', [1000], [
new Benchmark('MultiLineComment', false, true, iterations, Run, MultiLineCommentSetup)
new BenchmarkSuite("MultiLineComment", [1000], [
new Benchmark("MultiLineComment", false, true, iterations, Run, MultiLineCommentSetup)
]);
let code;
function OneLineCommentSetup() {
code = "//" + " This is a comment... ".repeat(600);
%FlattenString(code);
......
......@@ -3,14 +3,19 @@
// found in the LICENSE file.
load('../base.js');
load("../base.js");
load('comments.js');
const iterations = 100;
let code;
load("comments.js");
load("strings.js");
load("arrowfunctions.js")
var success = true;
function PrintResult(name, result) {
print(name + '-Parsing(Score): ' + result);
print(name + "-Parsing(Score): " + result);
}
......
// Copyright 2018 the V8 project authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
new BenchmarkSuite("SingleLineString", [1000], [
new Benchmark("SingleLineString", false, true, iterations, Run, SingleLineStringSetup)
]);
new BenchmarkSuite("SingleLineStrings", [3000], [
new Benchmark("SingleLineStrings", false, true, iterations, Run, SingleLineStringsSetup)
]);
new BenchmarkSuite("MultiLineString", [1000], [
new Benchmark("MultiLineString", false, true, iterations, Run, MultiLineStringSetup)
]);
function SingleLineStringSetup() {
code = "\"" + "This is a string".repeat(600) + "\"";
%FlattenString(code);
}
function SingleLineStringsSetup() {
code = "\"This is a string\"\n".repeat(600);
%FlattenString(code);
}
function MultiLineStringSetup() {
code = "\"" + "This is a string \\\n".repeat(600) + "\"";
%FlattenString(code);
}
function Run() {
if (code == undefined) {
throw new Error("No test data");
}
eval(code);
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment