51c6315638
Bug: v8:7092, v8:7326, chromium:806758 Change-Id: Id8a3bc2455875af9dfdc01619d8217e033099e7e Reviewed-on: https://chromium-review.googlesource.com/895690 Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#51006}
163 lines
3.8 KiB
JavaScript
163 lines
3.8 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.
|
||
|
||
new BenchmarkSuite('StringIndexOfConstant', [5], [
|
||
new Benchmark('StringIndexOfConstant', true, false, 0,
|
||
StringIndexOfConstant),
|
||
]);
|
||
|
||
new BenchmarkSuite('StringIndexOfNonConstant', [5], [
|
||
new Benchmark('StringIndexOfNonConstant', true, false, 0,
|
||
StringIndexOfNonConstant),
|
||
]);
|
||
|
||
const subject = "aaaaaaaaaaaaaaaab";
|
||
const searches = ['a', 'b', 'c'];
|
||
|
||
function StringIndexOfConstant() {
|
||
var sum = 0;
|
||
|
||
for (var j = 0; j < searches.length; ++j) {
|
||
sum += subject.indexOf("" + searches[j]);
|
||
}
|
||
|
||
return sum;
|
||
}
|
||
|
||
function StringIndexOfNonConstant() {
|
||
var sum = 0;
|
||
|
||
for (var j = 0; j < searches.length; ++j) {
|
||
sum += subject.indexOf(searches[j]);
|
||
}
|
||
|
||
return sum;
|
||
}
|
||
|
||
new BenchmarkSuite('StringCharCodeAtConstant', [3], [
|
||
new Benchmark('StringCharCodeAtConstant', true, false, 0,
|
||
StringCharCodeAtConstant),
|
||
]);
|
||
|
||
new BenchmarkSuite('StringCharCodeAtNonConstant', [3], [
|
||
new Benchmark('StringCharCodeAtNonConstant', true, false, 0,
|
||
StringCharCodeAtNonConstant),
|
||
]);
|
||
|
||
new BenchmarkSuite('StringCharCodeAtConstantInbounds', [3], [
|
||
new Benchmark('StringCharCodeAtConstantInbounds', true, false, 0,
|
||
StringCharCodeAtConstantInbounds),
|
||
]);
|
||
|
||
new BenchmarkSuite('StringCharCodeAtNonConstantInbounds', [3], [
|
||
new Benchmark('StringCharCodeAtNonConstantInbounds', true, false, 0,
|
||
StringCharCodeAtNonConstantInbounds),
|
||
]);
|
||
|
||
const string = "qweruiplkjhgfdsazxccvbnm";
|
||
const indices = [1, 13, 32, 100, "xx"];
|
||
const indicesInbounds = [1, 7, 13, 17, "xx"];
|
||
|
||
function StringCharCodeAtConstant() {
|
||
var sum = 0;
|
||
|
||
for (var j = 0; j < indices.length - 1; ++j) {
|
||
sum += string.charCodeAt(indices[j] | 0);
|
||
}
|
||
|
||
return sum;
|
||
}
|
||
|
||
function StringCharCodeAtNonConstant() {
|
||
var sum = 0;
|
||
|
||
for (var j = 0; j < indices.length - 1; ++j) {
|
||
sum += string.charCodeAt(indices[j]);
|
||
}
|
||
|
||
return sum;
|
||
}
|
||
|
||
function StringCharCodeAtConstantInbounds() {
|
||
var sum = 0;
|
||
|
||
for (var j = 0; j < indicesInbounds.length - 1; ++j) {
|
||
sum += string.charCodeAt(indicesInbounds[j] | 0);
|
||
}
|
||
|
||
return sum;
|
||
}
|
||
|
||
function StringCharCodeAtNonConstantInbounds() {
|
||
var sum = 0;
|
||
|
||
for (var j = 0; j < indicesInbounds.length - 1; ++j) {
|
||
sum += string.charCodeAt(indicesInbounds[j]);
|
||
}
|
||
|
||
return sum;
|
||
}
|
||
|
||
new BenchmarkSuite('StringCodePointAtConstant', [3], [
|
||
new Benchmark('StringCodePointAtConstant', true, false, 0,
|
||
StringCodePointAtConstant),
|
||
]);
|
||
|
||
new BenchmarkSuite('StringCodePointAtNonConstant', [3], [
|
||
new Benchmark('StringCodePointAtNonConstant', true, false, 0,
|
||
StringCodePointAtNonConstant),
|
||
]);
|
||
|
||
new BenchmarkSuite('StringCodePointAtConstantInbounds', [3], [
|
||
new Benchmark('StringCodePointAtConstantInbounds', true, false, 0,
|
||
StringCodePointAtConstantInbounds),
|
||
]);
|
||
|
||
new BenchmarkSuite('StringCodePointAtNonConstantInbounds', [3], [
|
||
new Benchmark('StringCodePointAtNonConstantInbounds', true, false, 0,
|
||
StringCodePointAtNonConstantInbounds),
|
||
]);
|
||
|
||
const unicode_string = "qweräϠ<C3A4>𝌆krefdäϠ<C3A4>𝌆ccäϠ<C3A4>𝌆";
|
||
|
||
function StringCodePointAtConstant() {
|
||
var sum = 0;
|
||
|
||
for (var j = 0; j < indices.length - 1; ++j) {
|
||
sum += unicode_string.codePointAt(indices[j] | 0);
|
||
}
|
||
|
||
return sum;
|
||
}
|
||
|
||
function StringCodePointAtNonConstant() {
|
||
var sum = 0;
|
||
|
||
for (var j = 0; j < indices.length - 1; ++j) {
|
||
sum += unicode_string.codePointAt(indices[j]);
|
||
}
|
||
|
||
return sum;
|
||
}
|
||
|
||
function StringCodePointAtConstantInbounds() {
|
||
var sum = 0;
|
||
|
||
for (var j = 0; j < indicesInbounds.length - 1; ++j) {
|
||
sum += unicode_string.codePointAt(indicesInbounds[j] | 0);
|
||
}
|
||
|
||
return sum;
|
||
}
|
||
|
||
function StringCodePointAtNonConstantInbounds() {
|
||
var sum = 0;
|
||
|
||
for (var j = 0; j < indicesInbounds.length - 1; ++j) {
|
||
sum += unicode_string.codePointAt(indicesInbounds[j]);
|
||
}
|
||
|
||
return sum;
|
||
}
|