615255dd4e
- Add filter to skip baseline handlers - Make profiler types more readable - Refactor tickprocessor test to use serialized symbols - Add large tickprocessor stress test with a complete V8 log Change-Id: Icc09c2eb8ea63c1805d793d2d47f79b0d5080b5b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2784686 Commit-Queue: Camillo Bruni <cbruni@chromium.org> Reviewed-by: Patrick Thier <pthier@chromium.org> Cr-Commit-Position: refs/heads/master@{#74094}
59 lines
1.0 KiB
JavaScript
59 lines
1.0 KiB
JavaScript
// Copyright 2020 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.
|
|
|
|
// Sample file for creating tickprocessor-test.log
|
|
"use strict"
|
|
|
|
let result;
|
|
|
|
function loop() {
|
|
let result = 0;
|
|
for (let i = 0; i < 10_000_000; i++) {
|
|
result = add(result, 1);
|
|
}
|
|
return result;
|
|
}
|
|
|
|
function add(a, b) {
|
|
return a + b;
|
|
}
|
|
|
|
|
|
result = loop();
|
|
result = loop();
|
|
|
|
// Cause some IC misses
|
|
function read_monomorphic(o) {
|
|
return o.value
|
|
}
|
|
|
|
function read_polymorphic(o) {
|
|
return o.value
|
|
}
|
|
|
|
function read_megamorphic(o) {
|
|
return o.value
|
|
}
|
|
|
|
const objects = [];
|
|
for (let i = 0; i < 100; i++) {
|
|
const object = {};
|
|
object['key' + i ];
|
|
object['value'] = 1 + i/100;
|
|
objects.push(object)
|
|
}
|
|
|
|
function ics() {
|
|
result = 0;
|
|
for (let i = 0; i < objects.length; i++) {
|
|
result += read_monomorphic(objects[0]);
|
|
result += read_polymorphic(objects[i % 3])
|
|
result += read_megamorphic(objects[i]);
|
|
}
|
|
}
|
|
|
|
for (let i = 0; i < 100_000; i++) {
|
|
ics();
|
|
}
|