af9e4ba2ca
This CL changes all ArraySort benchmarks to execute the setup function for each iteration (one run call), instead of only once for all iterations. Even though we now also measure the time needed to copy and prepare the array, this is needed, otherwise we would mainly measure sorting already sorted arrays. R=cbruni@chromium.org, jgruber@chromium.org Change-Id: I2e0e301b52b0288b8c825c3c8401c348c4a0dee7 Reviewed-on: https://chromium-review.googlesource.com/1105045 Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Simon Zünd <szuend@google.com> Cr-Commit-Position: refs/heads/master@{#53825}
44 lines
1.7 KiB
JavaScript
44 lines
1.7 KiB
JavaScript
// 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.
|
|
|
|
load('sort-base.js');
|
|
|
|
// Creates a comparison function, that will call the provided transform function
|
|
// after a set amount of comparisons. The transform function should cause the
|
|
// element kind of the array to change.
|
|
function CreateCompareFn(transformfn) {
|
|
return (a, b) => {
|
|
++counter;
|
|
if (counter == kArraySize/2) {
|
|
transformfn();
|
|
}
|
|
|
|
return cmp_smaller(a, b);
|
|
}
|
|
}
|
|
|
|
let cmp_packed_smi_to_double = CreateCompareFn(() => array_to_sort.push(0.1));
|
|
let cmp_holey_smi_to_double = CreateCompareFn(() => array_to_sort.push(0.1));
|
|
let cmp_double_to_double = CreateCompareFn(() => array_to_sort.length *= 2);
|
|
|
|
createSortSuite(
|
|
'PackedSmiToPackedDouble', 1000, CreateSortFn([cmp_packed_smi_to_double]),
|
|
CreatePackedSmiArray, AssertPackedDoubleElements);
|
|
createSortSuite(
|
|
'HoleySmiToHoleyDouble', 1000, CreateSortFn([cmp_holey_smi_to_double]),
|
|
CreateHoleySmiArray, AssertHoleyDoubleElements);
|
|
createSortSuite(
|
|
'PackedDoubleToHoleyDouble', 1000, CreateSortFn([cmp_double_to_double]),
|
|
CreatePackedDoubleArray, AssertHoleyDoubleElements);
|
|
|
|
let cmp_packed_to_dict = CreateCompareFn(() => array_to_sort[%MaxSmi()] = 42);
|
|
let cmp_holey_to_dict = CreateCompareFn(() => array_to_sort[%MaxSmi()] = 42);
|
|
|
|
createSortSuite(
|
|
'PackedElementToDictionary', 1000, CreateSortFn([cmp_packed_to_dict]),
|
|
CreatePackedObjectArray, AssertDictionaryElements);
|
|
createSortSuite(
|
|
'HoleyElementToDictionary', 1000, CreateSortFn([cmp_holey_to_dict]),
|
|
CreateHoleyObjectArray, AssertDictionaryElements);
|