Skip to content

Commit

Permalink
Disable MultiTier compilation in benchmarks (#3548)
Browse files Browse the repository at this point in the history
Truffle is using [MultiTier compilation](oracle/graal@190e0b2) by default since 21.1.0. That mean every `RootNode` is compiled twice. However benchmarks only care about peak performance. Let's return back the previous behavior and compile only once after profiling in interpreter.

# Important Notes
This change does not influence the peak performance. Just the amount of IGV graphs produced from benchmarks when running:
```
enso$ sbt  "project runtime" "withDebug --dumpGraphs benchOnly -- AtomBenchmark"
```
is cut to half.
  • Loading branch information
JaroslavTulach authored Jun 28, 2022
1 parent 096d8fd commit abc2d37
Showing 1 changed file with 4 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,10 @@ public List<String> getAvailable() {
* @return a {@link BenchmarkItem} containing current run result and historical results.
*/
public BenchmarkItem run(String label) throws RunnerException, JAXBException {
Options benchmarkOptions =
new OptionsBuilder().jvmArgsAppend("-Xss16M").include("^" + label + "$").build();
Options benchmarkOptions = new OptionsBuilder()
.jvmArgsAppend("-Xss16M", "-Dpolyglot.engine.MultiTier=false")
.include("^" + label + "$")
.build();
RunResult benchmarksResult = new Runner(benchmarkOptions).runSingle();

Report report;
Expand Down

0 comments on commit abc2d37

Please sign in to comment.