Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove old temporary directory API from benchmark context #246

Merged
merged 11 commits into from
May 4, 2021

Conversation

lbulej
Copy link
Member

@lbulej lbulej commented Apr 30, 2021

Updates the apache-spark and dbshootout benchmarks to use the BenchmarkContext.scratchDirectory() method, so that we can get rid of the old methods.

The other change moves the resolution of the benchmark scratch directory into a single place so that we don't have to duplicate policy-level decisions in the harness and the JMH wrapper.

There is another set of changes (#248) that makes the apache-spark benchmarks actually use the scratch directory and stop preparing their inputs (and dumping their outputs) into the target subdirectory. Similar change will be done for scala-dotty.

Also updates the apache-spark and dbshootout benchmarks to use the
BenchmarkContext.scratchDirectory() method.
Copy link
Collaborator

@farquet farquet left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@lbulej lbulej mentioned this pull request Apr 30, 2021
8 tasks
lbulej added 10 commits May 1, 2021 12:24
This gives us a single place where the resolution is performed, so
that we don't have to duplicate it in the harness and the JMH wrapper.

Also moves the benchmark scratch directory under the module directory.
SBT uses 1024 by default and kills memory-related JVM options in the
`.sbtopts` file and derives its values on its own. The default memory
size results in code cache of 128 megs, which is insufficient for a
pristine build, where it can reach slightly over 200 megs. Raising the
memory to 2048 increases the code cache size to 256 megs.
This will avoid having to change the version number in multiple
places. The current version number is determine by the latest
(annotated) tag and the distance to it from the current commit.
Release built from the tagged commit will have a "clean" version
number, others will include the hash of the build commit.

CI scripts will be able to determine the current version simply
by using `git describe` and stripping the initial `v`.

The only thing that needs to be updated is the git.baseVersion
setting in renaissance-core/version.sbt, which provides a base
(upcoming) version number for git-less situations, i.e., when
building the sources outside the git tree.
This will avoid having to update README.md with each commit.
Removes task to write out .gitprops which does not work in git-less
mode and is not needed anyway. Also adds a proper version related to
the upstream master and the exported dependency.
These checks are also made in the CI, but it does not hurt to
have them in the pre-push hook. The markdown check requires a
successful build of the base JAR.
The goal is to use the `script` section of `.travis.yml` for
higher-level actions instead of low-level file management.
@lbulej lbulej merged commit cb8cfa1 into master May 4, 2021
@lbulej lbulej deleted the topic/scratch-dir-api branch May 4, 2021 19:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants