Add micro-benchmark of array.indexOf, array.includes for frozen objects
Bug: v8:6831 Change-Id: I4d244771629a1c4785353f125d919793bdf37267 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1604408 Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Z Nguyen-Huu <duongn@microsoft.com> Cr-Commit-Position: refs/heads/master@{#61430}
This commit is contained in:
parent
377f182b48
commit
d703346650
@ -571,7 +571,9 @@
|
||||
"results_regexp": "^%s\\-Numbers\\(Score\\): (.+)$",
|
||||
"tests": [
|
||||
{"name": "TaggedTemplate"},
|
||||
{"name": "TaggedTemplateLoose"}
|
||||
{"name": "TaggedTemplateLoose"},
|
||||
{"name": "ArrayIndexOf"},
|
||||
{"name": "ArrayIncludes"}
|
||||
]
|
||||
},
|
||||
{
|
||||
|
53
test/js-perf-test/ObjectFreeze/array-indexof-includes.js
Normal file
53
test/js-perf-test/ObjectFreeze/array-indexof-includes.js
Normal file
@ -0,0 +1,53 @@
|
||||
// Copyright 2019 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 setupArray(length) {
|
||||
var a = new Array(length);
|
||||
for (var i=0;i<length;i++) {
|
||||
a[i] = ''+i;
|
||||
}
|
||||
return Object.freeze(a);
|
||||
}
|
||||
|
||||
const frozenArray = setupArray(200);
|
||||
|
||||
function driverArrayIndexOf(n) {
|
||||
let result = 0;
|
||||
for (var i=0;i<n;i++) {
|
||||
result += frozenArray.indexOf(''+i)==-1?0:1;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
function ArrayIndexOf() {
|
||||
driverArrayIndexOf(1e4);
|
||||
}
|
||||
|
||||
function ArrayIndexOfWarmUp() {
|
||||
driverArrayIndexOf(1e1);
|
||||
driverArrayIndexOf(1e2);
|
||||
driverArrayIndexOf(1e3);
|
||||
}
|
||||
|
||||
createSuite('ArrayIndexOf', 10, ArrayIndexOf, ArrayIndexOfWarmUp);
|
||||
|
||||
function driverArrayIncludes(n) {
|
||||
let result = 0;
|
||||
for (var i=0;i<n;i++) {
|
||||
result += frozenArray.includes(''+i)?0:1;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
function ArrayIncludes() {
|
||||
driverArrayIncludes(1e4);
|
||||
}
|
||||
|
||||
function ArrayIncludesWarmUp() {
|
||||
driverArrayIncludes(1e1);
|
||||
driverArrayIncludes(1e2);
|
||||
driverArrayIncludes(1e3);
|
||||
}
|
||||
|
||||
createSuite('ArrayIncludes', 10, ArrayIncludes, ArrayIncludesWarmUp);
|
@ -3,6 +3,7 @@
|
||||
// found in the LICENSE file.
|
||||
load('../base.js');
|
||||
load('tagged-template.js');
|
||||
load('array-indexof-includes.js');
|
||||
|
||||
function PrintResult(name, result) {
|
||||
console.log(name);
|
||||
|
Loading…
Reference in New Issue
Block a user