| // 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 benchy(name, test, testSetup) { |
| new BenchmarkSuite(name, [1000], |
| [ |
| new Benchmark(name, false, false, 0, test, testSetup, ()=>{}) |
| ]); |
| } |
| |
| benchy('SmiToString', SmiToString, SmiToStringSetup); |
| benchy('StringToString', StringToString, StringToStringSetup); |
| benchy('SparseSmiToString', SparseSmiToString, SparseSmiToStringSetup); |
| benchy('SparseStringToString', SparseStringToString, SparseStringToStringSetup); |
| |
| var array; |
| var result; |
| var array_size = 1000; |
| |
| |
| // Although these functions have the same code, they are separated for |
| // clean IC feedback. |
| function SmiToString() { |
| result = array.toString(); |
| } |
| function StringToString() { |
| result = array.toString(); |
| } |
| function SparseSmiToString() { |
| result = array.toString(); |
| } |
| function SparseStringToString() { |
| result = array.toString(); |
| } |
| |
| function SmiToStringSetup() { |
| array = new Array(); |
| for (var i = 0; i < array_size; ++i) array[i] = i; |
| } |
| function StringToStringSetup() { |
| array = new Array(); |
| for (var i = 0; i < array_size; ++i) array[i] = `Item no. ${i}`; |
| } |
| function SparseSmiToStringSetup() { |
| SmiToStringSetup(); |
| array.length = array.length * 2; |
| } |
| function SparseStringToStringSetup() { |
| StringToStringSetup(); |
| array.length = array.length * 2; |
| } |