193 lines
11 KiB
JavaScript
193 lines
11 KiB
JavaScript
|
// Copyright 2017 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.
|
||
|
|
||
|
function addBenchmark(name, test) {
|
||
|
new BenchmarkSuite(name, [1000],
|
||
|
[
|
||
|
new Benchmark(name, false, false, 0, test)
|
||
|
]);
|
||
|
}
|
||
|
|
||
|
addBenchmark('ShortString-StringConcat-2', ShortStringConcat2);
|
||
|
addBenchmark('ShortString-StringConcat-3', ShortStringConcat3);
|
||
|
addBenchmark('ShortString-StringConcat-5', ShortStringConcat5);
|
||
|
addBenchmark('ShortString-StringConcat-10', ShortStringConcat10);
|
||
|
addBenchmark('LongString-StringConcat-2', LongStringConcat2);
|
||
|
addBenchmark('LongString-StringConcat-3', LongStringConcat3);
|
||
|
addBenchmark('LongString-StringConcat-5', LongStringConcat5);
|
||
|
addBenchmark('LongString-StringConcat-10', LongStringConcat10);
|
||
|
addBenchmark('NumberString-StringConcat-2', NumberStringConcat2);
|
||
|
addBenchmark('NumberString-StringConcat-3', NumberStringConcat3);
|
||
|
addBenchmark('NumberString-StringConcat-5', NumberStringConcat5);
|
||
|
addBenchmark('NumberString-StringConcat-10', NumberStringConcat10);
|
||
|
|
||
|
function stringConcat2(a) {
|
||
|
for (var i = 0; i < 100; ++i) {
|
||
|
"s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a;
|
||
|
"s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a;
|
||
|
"s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a;
|
||
|
"s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a;
|
||
|
"s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a;
|
||
|
"s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a;
|
||
|
"s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a;
|
||
|
"s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a;
|
||
|
"s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a;
|
||
|
"s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function stringConcat3(a, b) {
|
||
|
for (var i = 0; i < 100; ++i) {
|
||
|
"s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b;
|
||
|
"s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b;
|
||
|
"s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b;
|
||
|
"s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b;
|
||
|
"s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b;
|
||
|
"s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b;
|
||
|
"s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b;
|
||
|
"s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b;
|
||
|
"s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b;
|
||
|
"s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b;
|
||
|
"s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b;
|
||
|
"s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b;
|
||
|
"s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b;
|
||
|
"s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b;
|
||
|
"s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b;
|
||
|
"s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b;
|
||
|
"s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b;
|
||
|
"s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b;
|
||
|
"s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b;
|
||
|
"s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function stringConcat5(a, b, c, d) {
|
||
|
for (var i = 0; i < 100; ++i) {
|
||
|
"s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d;
|
||
|
"s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d;
|
||
|
"s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d;
|
||
|
"s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d;
|
||
|
"s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d;
|
||
|
"s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d;
|
||
|
"s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d;
|
||
|
"s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d;
|
||
|
"s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d;
|
||
|
"s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d;
|
||
|
"s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d;
|
||
|
"s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d;
|
||
|
"s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d;
|
||
|
"s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d;
|
||
|
"s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d;
|
||
|
"s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d;
|
||
|
"s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d;
|
||
|
"s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d;
|
||
|
"s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d;
|
||
|
"s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function stringConcat10(a, b, c, d, e, f, g, h, i) {
|
||
|
for (var j = 0; j < 100; ++j) {
|
||
|
"s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i;
|
||
|
"s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i;
|
||
|
"s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i;
|
||
|
"s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i;
|
||
|
"s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i;
|
||
|
"s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i;
|
||
|
"s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i;
|
||
|
"s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i;
|
||
|
"s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i;
|
||
|
"s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i;
|
||
|
"s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i;
|
||
|
"s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i;
|
||
|
"s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i;
|
||
|
"s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i;
|
||
|
"s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i;
|
||
|
"s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i;
|
||
|
"s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i;
|
||
|
"s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i;
|
||
|
"s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i;
|
||
|
"s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i;
|
||
|
"s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i;
|
||
|
"s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i;
|
||
|
"s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i;
|
||
|
"s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i;
|
||
|
"s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i;
|
||
|
"s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i;
|
||
|
"s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i;
|
||
|
"s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i;
|
||
|
"s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i;
|
||
|
"s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i;
|
||
|
"s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i;
|
||
|
"s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i;
|
||
|
"s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i;
|
||
|
"s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i;
|
||
|
"s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i;
|
||
|
"s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i;
|
||
|
"s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i;
|
||
|
"s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i;
|
||
|
"s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i;
|
||
|
"s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i;
|
||
|
"s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i;
|
||
|
"s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i;
|
||
|
"s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i;
|
||
|
"s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i;
|
||
|
"s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i;
|
||
|
"s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i;
|
||
|
"s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i;
|
||
|
"s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i;
|
||
|
"s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i;
|
||
|
"s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function ShortStringConcat2() {
|
||
|
stringConcat2("a");
|
||
|
}
|
||
|
|
||
|
function ShortStringConcat3() {
|
||
|
stringConcat3("a", "b");
|
||
|
}
|
||
|
|
||
|
function ShortStringConcat5() {
|
||
|
stringConcat5("a", "b", "c", "d");
|
||
|
}
|
||
|
|
||
|
function ShortStringConcat10() {
|
||
|
stringConcat10("a", "b", "c", "d", "e", "f", "g", "h", "i");
|
||
|
}
|
||
|
|
||
|
function LongStringConcat2() {
|
||
|
stringConcat2("long string over consmin");
|
||
|
}
|
||
|
|
||
|
function LongStringConcat3() {
|
||
|
stringConcat3("long string ", "over consmin");
|
||
|
}
|
||
|
|
||
|
function LongStringConcat5() {
|
||
|
stringConcat5("long ", "string ", "over ", "consmin");
|
||
|
}
|
||
|
|
||
|
function LongStringConcat10() {
|
||
|
stringConcat10("long ", "string ", "over ", "consmin ", "long ", "string ",
|
||
|
"over ", "consmin", "done");
|
||
|
}
|
||
|
|
||
|
function NumberStringConcat2() {
|
||
|
stringConcat2(123.456);
|
||
|
}
|
||
|
|
||
|
function NumberStringConcat3() {
|
||
|
stringConcat3(1, 0.2345);
|
||
|
}
|
||
|
|
||
|
function NumberStringConcat5() {
|
||
|
stringConcat5(1, 2, 3, 4.5, 5.6);
|
||
|
}
|
||
|
|
||
|
function NumberStringConcat10() {
|
||
|
stringConcat10(10, 2345, 5e10, 3.14, 987654321, 21.56789, 2, 3, 4);
|
||
|
}
|