Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
bac7c45
ignore intellij files
valdisxp1 Aug 16, 2018
9ef2bab
give 2 GB heap for compiling
valdisxp1 Aug 16, 2018
182b597
latest snapshot
valdisxp1 Sep 14, 2018
8d6c28a
using latest snapshot and latest stable version
valdisxp1 Sep 21, 2018
43915f1
enable running just a part of the benchmarks
valdisxp1 Sep 21, 2018
8f21f8b
dependency install script
valdisxp1 Sep 22, 2018
62bfd92
attempt at a barchart
valdisxp1 Sep 22, 2018
a901a97
attempt at a barchart
valdisxp1 Sep 22, 2018
7cd093a
save charts to reports
valdisxp1 Sep 23, 2018
cf773f3
Merge remote-tracking branch 'origin/compare-3.8.5-with-master' into …
valdisxp1 Sep 23, 2018
7d81c57
include jvm as well
valdisxp1 Sep 23, 2018
03bed2e
do not remove 1% outliers when doing percentiles anyway
valdisxp1 Sep 23, 2018
263d4b4
all the charts inside markdown
valdisxp1 Sep 23, 2018
5abefad
links, using seconds, correct yaxis
valdisxp1 Sep 23, 2018
97588e3
decimal places and replative difference
valdisxp1 Sep 23, 2018
c922399
make it bold when there is an improvement
valdisxp1 Sep 23, 2018
91c236f
relative bar chart
valdisxp1 Sep 23, 2018
2869c68
good bar charts for summary
valdisxp1 Sep 23, 2018
aaf0246
fixed aligment
valdisxp1 Sep 23, 2018
5930f51
proper argument parsing
valdisxp1 Sep 23, 2018
994d1ad
prints resulting report path
valdisxp1 Sep 23, 2018
97ec186
allow "latest" and "stable" as dynamic suffixes
valdisxp1 Sep 23, 2018
d0b004e
formatting
valdisxp1 Sep 23, 2018
5eb427e
can change the default comment on the suffix
valdisxp1 Sep 23, 2018
9787a17
include example runs
valdisxp1 Sep 23, 2018
b107510
fix links
valdisxp1 Sep 23, 2018
0683808
explain usage
valdisxp1 Sep 23, 2018
6800fd5
handle empty suffixes
valdisxp1 Sep 25, 2018
ee834a6
support 2 new lto variants: full and thin
valdisxp1 Sep 25, 2018
2c6b995
fixed typo in the config names
valdisxp1 Sep 27, 2018
cf0a439
extra arguments
valdisxp1 Sep 30, 2018
5aa7f74
handling failures
valdisxp1 Sep 30, 2018
781d36c
added missing string conversions
valdisxp1 Sep 30, 2018
e5e3da9
added parrallel execution
valdisxp1 Sep 30, 2018
c27bf95
display the failed statistics for par as well
valdisxp1 Sep 30, 2018
5018613
removed unused import
valdisxp1 Sep 30, 2018
80b8324
scan for all successful runs
valdisxp1 Sep 30, 2018
60a15c6
also collect stderr
valdisxp1 Sep 30, 2018
d451b94
readme
valdisxp1 Oct 2, 2018
733bd0d
handle missing data
valdisxp1 Oct 3, 2018
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
bin/.coursier
bin/.scalafmt*
results/
reports/
*.iprof
.idea
78 changes: 77 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,84 @@ as-is and summarized in a separate post-processing step.
python scripts/run.py
```

## Viewing result summary
## Creating result summary

```
python scripts/summary.py
```

The reports can be viewed in the `reports` directory.

## Advanced use

### Comparing specific versions

You can run just the configurations you are interested in
```bash
scripts/run.py stable latest
```

Compare the lastest `stable` relesea vs `latest` snapshot
```bash
REPORT=$(scripts/summary.py stable latest)
```

### Specifying number of runs, batches, tests run in parallel
```bash
scripts/run.py --par 4 --runs 50 --batches 3000 stable
# 50 runs (4 in parallel) each with 3000 batches for the stable release.
```

These settings will impact accuracy, this is why the names of the results folders will include the settings, in this case `scala-native-0.3.8-r50-p40-b3000`.
Note that you can also use `stable-r50-p40-b3000` when using the `summary.py`.

### Comparing an experimental feature with latest from master
1. build `scala-native` from latest master
2. run the benchmark for it
```bash
scripts/run.py latest
```
3. build `scala-native` from your branch
4. specify a suffix to identify it
```bash
NAME=PR9001-adding-a-kitchen-sink
```
5. run the benchmark and get the summary report
```bash
scripts/run.py --suffix "$NAME" latest &&
REPORT=$(scripts/summary.py --comment "$NAME" latest latest_"$NAME")
```

## Persisting reports
The following commands assume that you have a git repository checked out at `gh-pages` under `../scala-native-benchmark-results`.

Also that there is an executable script `just-upload.sh` in the root of that repository.
```bash
#just-upload.sh


#!/bin/bash
# move to the directory of the script
cd $(dirname "$0")

git add . &&
git commit -m "automated commit" && git push
```

### saving experiment data
```bash
cp -r results/ ../scala-native-benchmark-results &&
../scala-native-benchmark-results/just-upload.sh
```

### restoring experiment data
```bash
cp -r ../scala-native-benchmark-results results/
```

### uploading a report
```bash
mkdir -p ../scala-native-benchmark-results/reports
cp -r "$REPORT" ../scala-native-benchmark-results/reports &&
../scala-native-benchmark-results/just-upload.sh
```
1 change: 0 additions & 1 deletion confs/scala-native-0.3.7/plugins.sbt

This file was deleted.

File renamed without changes.
File renamed without changes.
1 change: 1 addition & 0 deletions confs/scala-native-0.3.8/plugins.sbt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
addSbtPlugin("org.scala-native" % "sbt-scala-native" % "0.3.8")
File renamed without changes.
6 changes: 6 additions & 0 deletions confs/scala-native-0.3.9-SNAPSHOT-full-lto/build.sbt
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
scalaVersion := "2.11.12"
enablePlugins(ScalaNativePlugin)
nativeLinkStubs := true
nativeGC := "immix"
nativeMode := "release"
nativeLTO := "full"
1 change: 1 addition & 0 deletions confs/scala-native-0.3.9-SNAPSHOT-full-lto/compile
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
nativeLink
1 change: 1 addition & 0 deletions confs/scala-native-0.3.9-SNAPSHOT-full-lto/plugins.sbt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
addSbtPlugin("org.scala-native" % "sbt-scala-native" % "0.3.9-SNAPSHOT")
1 change: 1 addition & 0 deletions confs/scala-native-0.3.9-SNAPSHOT-full-lto/run
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
target/scala-2.11/scala-native-benchmarks-out
6 changes: 6 additions & 0 deletions confs/scala-native-0.3.9-SNAPSHOT-thin-lto/build.sbt
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
scalaVersion := "2.11.12"
enablePlugins(ScalaNativePlugin)
nativeLinkStubs := true
nativeGC := "immix"
nativeMode := "release"
nativeLTO := "thin"
1 change: 1 addition & 0 deletions confs/scala-native-0.3.9-SNAPSHOT-thin-lto/compile
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
nativeLink
1 change: 1 addition & 0 deletions confs/scala-native-0.3.9-SNAPSHOT-thin-lto/plugins.sbt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
addSbtPlugin("org.scala-native" % "sbt-scala-native" % "0.3.9-SNAPSHOT")
1 change: 1 addition & 0 deletions confs/scala-native-0.3.9-SNAPSHOT-thin-lto/run
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
target/scala-2.11/scala-native-benchmarks-out
5 changes: 5 additions & 0 deletions confs/scala-native-0.3.9-SNAPSHOT/build.sbt
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
scalaVersion := "2.11.12"
enablePlugins(ScalaNativePlugin)
nativeLinkStubs := true
nativeGC := "immix"
nativeMode := "release"
1 change: 1 addition & 0 deletions confs/scala-native-0.3.9-SNAPSHOT/compile
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
nativeLink
1 change: 1 addition & 0 deletions confs/scala-native-0.3.9-SNAPSHOT/plugins.sbt
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
addSbtPlugin("org.scala-native" % "sbt-scala-native" % "0.3.9-SNAPSHOT")
1 change: 1 addition & 0 deletions confs/scala-native-0.3.9-SNAPSHOT/run
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
target/scala-2.11/scala-native-benchmarks-out
3 changes: 3 additions & 0 deletions scripts/install-dependecies.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#!/usr/bin/env bash
sudo pip2 install numpy matplotlib
sudo apt update && sudo apt install python-tk
Loading