[super property speed] Invert benchmark graphs

The goal is to have one graph per test case, and inside the graph,
4 different lines:
- baseline
- baseline noopt
- super-ic
- super-ic noopt

Bug: v8:9237
Change-Id: I511b5555487a3d96698a3fb648abf76a13f76858
No-Try: True
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2384770
Reviewed-by: Peter Marshall <petermarshall@chromium.org>
Commit-Queue: Marja Hölttä <marja@chromium.org>
Cr-Commit-Position: refs/heads/master@{#69618}
This commit is contained in:
Marja Hölttä 2020-08-31 10:45:07 +02:00 committed by Commit Bot
parent b5a33ebafe
commit 925effd045
12 changed files with 281 additions and 205 deletions

View File

@ -11,274 +11,352 @@
"resources": ["base.js"],
"tests": [
{
"name": "SuperIC-baseline-noopt",
"name": "Monomorphic",
"path": ["SuperIC"],
"flags": ["--noopt"],
"results_regexp": "^%s\\(Score\\): (.+)$",
"test_flags": ["monomorphic"],
"tests": [
{
"name": "Monomorphic",
"name": "baseline",
"main": "run.js",
"resources": ["monomorphic.js"],
"test_flags": ["monomorphic"]
"test_flags": ["baseline"]
},
{
"name": "Monomorphic-MegaReceivers",
"name": "baseline-noopt",
"main": "run.js",
"resources": ["monomorphic-mega-receivers.js"],
"test_flags": ["monomorphic-mega-receivers"]
"resources": ["monomorphic.js"],
"test_flags": ["baseline-noopt"],
"flags": ["--noopt"]
},
{
"name": "Polymorphic-Mixin",
"name": "superic",
"main": "run.js",
"resources": ["polymorphic-mixin.js"],
"test_flags": ["polymorphic-mixin"]
"resources": ["monomorphic.js"],
"test_flags": ["superic"],
"flags": ["--super-ic"]
},
{
"name": "Polymorphic-Mixin-MegaReceivers",
"name": "superic-noopt",
"main": "run.js",
"resources": ["polymorphic-mixin-mega-receivers.js"],
"test_flags": ["polymorphic-mixin-mega-receivers"]
},
{
"name": "Megamorphic-Mixin",
"main": "run.js",
"resources": ["megamorphic-mixin.js"],
"test_flags": ["megamorphic-mixin"]
},
{
"name": "Monomorphic-Getter",
"main": "run.js",
"resources": ["monomorphic-getter.js"],
"test_flags": ["monomorphic-getter"]
},
{
"name": "Monomorphic-MegaReceivers-Getter",
"main": "run.js",
"resources": ["monomorphic-mega-receivers-getter.js"],
"test_flags": ["monomorphic-mega-receivers-getter"]
},
{
"name": "Polymorphic-Mixin-Getter",
"main": "run.js",
"resources": ["polymorphic-mixin-getter.js"],
"test_flags": ["polymorphic-mixin-getter"]
},
{
"name": "Polymorphic-Mixin-MegaReceivers-Getter",
"main": "run.js",
"resources": ["polymorphic-mixin-mega-receivers-getter.js"],
"test_flags": ["polymorphic-mixin-mega-receivers-getter"]
},
{
"name": "Megamorphic-Mixin-Getter",
"main": "run.js",
"resources": ["megamorphic-mixin-getter.js"],
"test_flags": ["megamorphic-mixin-getter"]
"resources": ["monomorphic.js"],
"test_flags": ["superic-noopt"],
"flags": ["--super-ic", "--noopt"]
}
]
},
{
"name": "SuperIC-baseline-opt",
"name": "Monomorphic-MegaReceivers",
"path": ["SuperIC"],
"flags": [],
"results_regexp": "^%s\\(Score\\): (.+)$",
"test_flags": ["monomorphic-mega-receivers"],
"tests": [
{
"name": "Monomorphic",
"main": "run.js",
"resources": ["monomorphic.js"],
"test_flags": ["monomorphic"]
},
{
"name": "Monomorphic-MegaReceivers",
"name": "baseline",
"main": "run.js",
"resources": ["monomorphic-mega-receivers.js"],
"test_flags": ["monomorphic-mega-receivers"]
"test_flags": ["baseline"]
},
{
"name": "Polymorphic-Mixin",
"name": "baseline-noopt",
"main": "run.js",
"resources": ["polymorphic-mixin.js"],
"test_flags": ["polymorphic-mixin"]
"resources": ["monomorphic-mega-receivers.js"],
"test_flags": ["baseline-noopt"],
"flags": ["--noopt"]
},
{
"name": "Polymorphic-Mixin-MegaReceivers",
"name": "superic",
"main": "run.js",
"resources": ["polymorphic-mixin-mega-receivers.js"],
"test_flags": ["polymorphic-mixin-mega-receivers"]
"resources": ["monomorphic-mega-receivers.js"],
"test_flags": ["superic"],
"flags": ["--super-ic"]
},
{
"name": "Megamorphic-Mixin",
"name": "superic-noopt",
"main": "run.js",
"resources": ["megamorphic-mixin.js"],
"test_flags": ["megamorphic-mixin"]
},
{
"name": "Monomorphic-Getter",
"main": "run.js",
"resources": ["monomorphic-getter.js"],
"test_flags": ["monomorphic-getter"]
},
{
"name": "Monomorphic-MegaReceivers-Getter",
"main": "run.js",
"resources": ["monomorphic-mega-receivers-getter.js"],
"test_flags": ["monomorphic-mega-receivers-getter"]
},
{
"name": "Polymorphic-Mixin-Getter",
"main": "run.js",
"resources": ["polymorphic-mixin-getter.js"],
"test_flags": ["polymorphic-mixin-getter"]
},
{
"name": "Polymorphic-Mixin-MegaReceivers-Getter",
"main": "run.js",
"resources": ["polymorphic-mixin-mega-receivers-getter.js"],
"test_flags": ["polymorphic-mixin-mega-receivers-getter"]
},
{
"name": "Megamorphic-Mixin-Getter",
"main": "run.js",
"resources": ["megamorphic-mixin-getter.js"],
"test_flags": ["megamorphic-mixin-getter"]
"resources": ["monomorphic-mega-receivers.js"],
"test_flags": ["superic-noopt"],
"flags": ["--super-ic", "--noopt"]
}
]
},
{
"name": "SuperIC-noopt",
"name": "Polymorphic-Mixin",
"path": ["SuperIC"],
"flags": ["--noopt", "--super-ic"],
"results_regexp": "^%s\\(Score\\): (.+)$",
"test_flags": ["polymorphic-mixin"],
"tests": [
{
"name": "Monomorphic",
"main": "run.js",
"resources": ["monomorphic.js"],
"test_flags": ["monomorphic"]
},
{
"name": "Monomorphic-MegaReceivers",
"main": "run.js",
"resources": ["monomorphic-mega-receivers.js"],
"test_flags": ["monomorphic-mega-receivers"]
},
{
"name": "Polymorphic-Mixin",
"name": "baseline",
"main": "run.js",
"resources": ["polymorphic-mixin.js"],
"test_flags": ["polymorphic-mixin"]
"test_flags": ["baseline"]
},
{
"name": "Polymorphic-Mixin-MegaReceivers",
"name": "baseline-noopt",
"main": "run.js",
"resources": ["polymorphic-mixin-mega-receivers.js"],
"test_flags": ["polymorphic-mixin-mega-receivers"]
"resources": ["polymorphic-mixin.js"],
"test_flags": ["baseline-noopt"],
"flags": ["--noopt"]
},
{
"name": "Megamorphic-Mixin",
"name": "superic",
"main": "run.js",
"resources": ["megamorphic-mixin.js"],
"test_flags": ["megamorphic-mixin"]
"resources": ["polymorphic-mixin.js"],
"test_flags": ["superic"],
"flags": ["--super-ic"]
},
{
"name": "Monomorphic-Getter",
"name": "superic-noopt",
"main": "run.js",
"resources": ["monomorphic-getter.js"],
"test_flags": ["monomorphic-getter"]
},
{
"name": "Monomorphic-MegaReceivers-Getter",
"main": "run.js",
"resources": ["monomorphic-mega-receivers-getter.js"],
"test_flags": ["monomorphic-mega-receivers-getter"]
},
{
"name": "Polymorphic-Mixin-Getter",
"main": "run.js",
"resources": ["polymorphic-mixin-getter.js"],
"test_flags": ["polymorphic-mixin-getter"]
},
{
"name": "Polymorphic-Mixin-MegaReceivers-Getter",
"main": "run.js",
"resources": ["polymorphic-mixin-mega-receivers-getter.js"],
"test_flags": ["polymorphic-mixin-mega-receivers-getter"]
},
{
"name": "Megamorphic-Mixin-Getter",
"main": "run.js",
"resources": ["megamorphic-mixin-getter.js"],
"test_flags": ["megamorphic-mixin-getter"]
"resources": ["polymorphic-mixin.js"],
"test_flags": ["superic-noopt"],
"flags": ["--super-ic", "--noopt"]
}
]
},
{
"name": "SuperIC-opt",
"name": "Polymorphic-Mixin-MegaReceivers",
"path": ["SuperIC"],
"flags": ["--super-ic"],
"results_regexp": "^%s\\(Score\\): (.+)$",
"test_flags": ["polymorphic-mixin-mega-receivers"],
"tests": [
{
"name": "Monomorphic",
"main": "run.js",
"resources": ["monomorphic.js"],
"test_flags": ["monomorphic"]
},
{
"name": "Monomorphic-MegaReceivers",
"main": "run.js",
"resources": ["monomorphic-mega-receivers.js"],
"test_flags": ["monomorphic-mega-receivers"]
},
{
"name": "Polymorphic-Mixin",
"main": "run.js",
"resources": ["polymorphic-mixin.js"],
"test_flags": ["polymorphic-mixin"]
},
{
"name": "Polymorphic-Mixin-MegaReceivers",
"name": "baseline",
"main": "run.js",
"resources": ["polymorphic-mixin-mega-receivers.js"],
"test_flags": ["polymorphic-mixin-mega-receivers"]
"test_flags": ["baseline"]
},
{
"name": "Megamorphic-Mixin",
"name": "baseline-noopt",
"main": "run.js",
"resources": ["polymorphic-mixin-mega-receivers.js"],
"test_flags": ["baseline-noopt"],
"flags": ["--noopt"]
},
{
"name": "superic",
"main": "run.js",
"resources": ["polymorphic-mixin-mega-receivers.js"],
"test_flags": ["superic"],
"flags": ["--super-ic"]
},
{
"name": "superic-noopt",
"main": "run.js",
"resources": ["polymorphic-mixin-mega-receivers.js"],
"test_flags": ["superic-noopt"],
"flags": ["--super-ic", "--noopt"]
}
]
},
{
"name": "Megamorphic-Mixin",
"path": ["SuperIC"],
"results_regexp": "^%s\\(Score\\): (.+)$",
"test_flags": ["polymorphic-mixin"],
"tests": [
{
"name": "baseline",
"main": "run.js",
"resources": ["megamorphic-mixin.js"],
"test_flags": ["megamorphic-mixin"]
"test_flags": ["baseline"]
},
{
"name": "Monomorphic-Getter",
"name": "baseline-noopt",
"main": "run.js",
"resources": ["megamorphic-mixin.js"],
"test_flags": ["baseline-noopt"],
"flags": ["--noopt"]
},
{
"name": "superic",
"main": "run.js",
"resources": ["megamorphic-mixin.js"],
"test_flags": ["superic"],
"flags": ["--super-ic"]
},
{
"name": "superic-noopt",
"main": "run.js",
"resources": ["megamorphic-mixin.js"],
"test_flags": ["superic-noopt"],
"flags": ["--super-ic", "--noopt"]
}
]
},
{
"name": "Monomorphic-Getter",
"path": ["SuperIC"],
"results_regexp": "^%s\\(Score\\): (.+)$",
"test_flags": ["monomorphic-getter"],
"tests": [
{
"name": "baseline",
"main": "run.js",
"resources": ["monomorphic-getter.js"],
"test_flags": ["monomorphic-getter"]
"test_flags": ["baseline"]
},
{
"name": "Monomorphic-MegaReceivers-Getter",
"name": "baseline-noopt",
"main": "run.js",
"resources": ["monomorphic-getter.js"],
"test_flags": ["baseline-noopt"],
"flags": ["--noopt"]
},
{
"name": "superic",
"main": "run.js",
"resources": ["monomorphic-getter.js"],
"test_flags": ["superic"],
"flags": ["--super-ic"]
},
{
"name": "superic-noopt",
"main": "run.js",
"resources": ["monomorphic-getter.js"],
"test_flags": ["superic-noopt"],
"flags": ["--super-ic", "--noopt"]
}
]
},
{
"name": "Monomorphic-MegaReceivers-Getter",
"path": ["SuperIC"],
"results_regexp": "^%s\\(Score\\): (.+)$",
"test_flags": ["monomorphic-mega-receivers-getter"],
"tests": [
{
"name": "baseline",
"main": "run.js",
"resources": ["monomorphic-mega-receivers-getter.js"],
"test_flags": ["monomorphic-mega-receivers-getter"]
"test_flags": ["baseline"]
},
{
"name": "Polymorphic-Mixin-Getter",
"name": "baseline-noopt",
"main": "run.js",
"resources": ["monomorphic-mega-receivers-getter.js"],
"test_flags": ["baseline-noopt"],
"flags": ["--noopt"]
},
{
"name": "superic",
"main": "run.js",
"resources": ["monomorphic-mega-receivers-getter.js"],
"test_flags": ["superic"],
"flags": ["--super-ic"]
},
{
"name": "superic-noopt",
"main": "run.js",
"resources": ["monomorphic-mega-receivers-getter.js"],
"test_flags": ["superic-noopt"],
"flags": ["--super-ic", "--noopt"]
}
]
},
{
"name": "Polymorphic-Mixin-Getter",
"path": ["SuperIC"],
"results_regexp": "^%s\\(Score\\): (.+)$",
"test_flags": ["polymorphic-mixin-getter"],
"tests": [
{
"name": "baseline",
"main": "run.js",
"resources": ["polymorphic-mixin-getter.js"],
"test_flags": ["polymorphic-mixin-getter"]
"test_flags": ["baseline"]
},
{
"name": "Polymorphic-Mixin-MegaReceivers-Getter",
"name": "baseline-noopt",
"main": "run.js",
"resources": ["polymorphic-mixin-getter.js"],
"test_flags": ["baseline-noopt"],
"flags": ["--noopt"]
},
{
"name": "superic",
"main": "run.js",
"resources": ["polymorphic-mixin-getter.js"],
"test_flags": ["superic"],
"flags": ["--super-ic"]
},
{
"name": "superic-noopt",
"main": "run.js",
"resources": ["polymorphic-mixin-getter.js"],
"test_flags": ["superic-noopt"],
"flags": ["--super-ic", "--noopt"]
}
]
},
{
"name": "Polymorphic-Mixin-MegaReceivers-Getter",
"path": ["SuperIC"],
"results_regexp": "^%s\\(Score\\): (.+)$",
"test_flags": ["polymorphic-mixin-mega-receivers-getter"],
"tests": [
{
"name": "baseline",
"main": "run.js",
"resources": ["polymorphic-mixin-mega-receivers-getter.js"],
"test_flags": ["polymorphic-mixin-mega-receivers-getter"]
"test_flags": ["baseline"]
},
{
"name": "Megamorphic-Mixin-Getter",
"name": "baseline-noopt",
"main": "run.js",
"resources": ["polymorphic-mixin-mega-receivers-getter.js"],
"test_flags": ["baseline-noopt"],
"flags": ["--noopt"]
},
{
"name": "superic",
"main": "run.js",
"resources": ["polymorphic-mixin-mega-receivers-getter.js"],
"test_flags": ["superic"],
"flags": ["--super-ic"]
},
{
"name": "superic-noopt",
"main": "run.js",
"resources": ["polymorphic-mixin-mega-receivers-getter.js"],
"test_flags": ["superic-noopt"],
"flags": ["--super-ic", "--noopt"]
}
]
},
{
"name": "Megamorphic-Mixin-Getter",
"path": ["SuperIC"],
"results_regexp": "^%s\\(Score\\): (.+)$",
"test_flags": ["polymorphic-mixin-getter"],
"tests": [
{
"name": "baseline",
"main": "run.js",
"resources": ["megamorphic-mixin-getter.js"],
"test_flags": ["megamorphic-mixin-getter"]
"test_flags": ["baseline"]
},
{
"name": "baseline-noopt",
"main": "run.js",
"resources": ["megamorphic-mixin-getter.js"],
"test_flags": ["baseline-noopt"],
"flags": ["--noopt"]
},
{
"name": "superic",
"main": "run.js",
"resources": ["megamorphic-mixin-getter.js"],
"test_flags": ["superic"],
"flags": ["--super-ic"]
},
{
"name": "superic-noopt",
"main": "run.js",
"resources": ["megamorphic-mixin-getter.js"],
"test_flags": ["superic-noopt"],
"flags": ["--super-ic", "--noopt"]
}
]
}

View File

@ -3,8 +3,8 @@
// found in the LICENSE file.
const DETERMINISTIC_RUNS = 10000;
new BenchmarkSuite('Megamorphic-Mixin-Getter', [1000], [
new Benchmark('Megamorphic-Mixin-Getter', false, false, DETERMINISTIC_RUNS,
new BenchmarkSuite(BENCHMARK_NAME, [1000], [
new Benchmark(BENCHMARK_NAME, false, false, DETERMINISTIC_RUNS,
runBenchmark)
]);

View File

@ -3,8 +3,8 @@
// found in the LICENSE file.
const DETERMINISTIC_RUNS = 10000;
new BenchmarkSuite('Megamorphic-Mixin', [1000], [
new Benchmark('Megamorphic-Mixin', false, false, DETERMINISTIC_RUNS,
new BenchmarkSuite(BENCHMARK_NAME, [1000], [
new Benchmark(BENCHMARK_NAME, false, false, DETERMINISTIC_RUNS,
runBenchmark)
]);

View File

@ -3,8 +3,8 @@
// found in the LICENSE file.
const DETERMINISTIC_RUNS = 10000;
new BenchmarkSuite('Monomorphic-Getter', [1000], [
new Benchmark('Monomorphic-Getter', false, false, DETERMINISTIC_RUNS, runBenchmark)
new BenchmarkSuite(BENCHMARK_NAME, [1000], [
new Benchmark(BENCHMARK_NAME, false, false, DETERMINISTIC_RUNS, runBenchmark)
]);
class A {

View File

@ -3,9 +3,8 @@
// found in the LICENSE file.
const DETERMINISTIC_RUNS = 10000;
new BenchmarkSuite('Monomorphic-MegaReceivers-Getter', [1000], [
new Benchmark('Monomorphic-MegaReceivers-Getter', false, false, DETERMINISTIC_RUNS,
runBenchmark)
new BenchmarkSuite(BENCHMARK_NAME, [1000], [
new Benchmark(BENCHMARK_NAME, false, false, DETERMINISTIC_RUNS, runBenchmark)
]);
class A {

View File

@ -3,8 +3,8 @@
// found in the LICENSE file.
const DETERMINISTIC_RUNS = 10000;
new BenchmarkSuite('Monomorphic-MegaReceivers', [1000], [
new Benchmark('Monomorphic-MegaReceivers', false, false, DETERMINISTIC_RUNS,
new BenchmarkSuite(BENCHMARK_NAME, [1000], [
new Benchmark(BENCHMARK_NAME, false, false, DETERMINISTIC_RUNS,
runBenchmark)
]);

View File

@ -3,8 +3,8 @@
// found in the LICENSE file.
const DETERMINISTIC_RUNS = 10000;
new BenchmarkSuite('Monomorphic', [1000], [
new Benchmark('Monomorphic', false, false, DETERMINISTIC_RUNS, runBenchmark)
new BenchmarkSuite(BENCHMARK_NAME, [1000], [
new Benchmark(BENCHMARK_NAME, false, false, DETERMINISTIC_RUNS, runBenchmark)
]);
class A { };

View File

@ -3,8 +3,8 @@
// found in the LICENSE file.
const DETERMINISTIC_RUNS = 10000;
new BenchmarkSuite('Polymorphic-Mixin-Getter', [1000], [
new Benchmark('Polymorphic-Mixin-Getter', false, false, DETERMINISTIC_RUNS,
new BenchmarkSuite(BENCHMARK_NAME, [1000], [
new Benchmark(BENCHMARK_NAME, false, false, DETERMINISTIC_RUNS,
runBenchmark)
]);

View File

@ -3,9 +3,8 @@
// found in the LICENSE file.
const DETERMINISTIC_RUNS = 10000;
new BenchmarkSuite('Polymorphic-Mixin-MegaReceivers-Getter', [1000], [
new Benchmark('Polymorphic-Mixin-MegaReceivers-Getter', false, false,
DETERMINISTIC_RUNS, runBenchmark)
new BenchmarkSuite(BENCHMARK_NAME, [1000], [
new Benchmark(BENCHMARK_NAME, false, false, DETERMINISTIC_RUNS, runBenchmark)
]);

View File

@ -3,12 +3,10 @@
// found in the LICENSE file.
const DETERMINISTIC_RUNS = 10000;
new BenchmarkSuite('Polymorphic-Mixin-MegaReceivers', [1000], [
new Benchmark('Polymorphic-Mixin-MegaReceivers', false, false,
DETERMINISTIC_RUNS, runBenchmark)
new BenchmarkSuite(BENCHMARK_NAME, [1000], [
new Benchmark(BENCHMARK_NAME, false, false, DETERMINISTIC_RUNS, runBenchmark)
]);
function createSubclass() {
class A { };
A.prototype.super_prop = 10;

View File

@ -3,8 +3,8 @@
// found in the LICENSE file.
const DETERMINISTIC_RUNS = 10000;
new BenchmarkSuite('Polymorphic-Mixin', [1000], [
new Benchmark('Polymorphic-Mixin', false, false, DETERMINISTIC_RUNS,
new BenchmarkSuite(BENCHMARK_NAME, [1000], [
new Benchmark(BENCHMARK_NAME, false, false, DETERMINISTIC_RUNS,
runBenchmark)
]);

View File

@ -3,6 +3,8 @@
// found in the LICENSE file.
load('../base.js');
BENCHMARK_NAME = arguments[1];
load(arguments[0] + '.js');
var success = true;