Skip to content

Adding profiling tests#3603

Merged
rv-jenkins merged 37 commits intodevelopfrom
profiling-tests
Aug 30, 2023
Merged

Adding profiling tests#3603
rv-jenkins merged 37 commits intodevelopfrom
profiling-tests

Conversation

@Robertorosmaninho
Copy link
Copy Markdown
Collaborator

@Robertorosmaninho Robertorosmaninho commented Aug 24, 2023

Part of #3517
Introduce tests to work as a benchmark for profiling kompile build time and space consumed.
These tests were obtained with kompile -E on each semantic/test and are the following:

  • IMP-Semantics
  • EVM-Semantics
  • AVM-Semantics
  • WASM-Semantics
  • ELROND-Semantics
  • PL-Tutorial-IMP: Lesson 5
  • PL-Tutorial-LAMBDA: Lesson 9

A new make command is introduced here: make profile, which runs make clean && /usr/bin/time --format x --output y make kompile.

Where y is the file name .profiling-results.json which contains the information in this format x:

{
        "IMP-SEMANTICS": {
                "build-time": {
                        "value": 2.85
                },
                "max-resident-set-size": {
                        "value": 552348
                }
        }
}

This output file will be consumed later by a framework to measure and compare the performance results.

@Robertorosmaninho Robertorosmaninho self-assigned this Aug 24, 2023
@Robertorosmaninho Robertorosmaninho added new feature A request for a new feature testing labels Aug 25, 2023
Comment thread .github/workflows/test-pr.yml
@Robertorosmaninho Robertorosmaninho marked this pull request as ready for review August 29, 2023 15:41
@Robertorosmaninho Robertorosmaninho requested a review from a team as a code owner August 29, 2023 15:41
Copy link
Copy Markdown
Contributor

@dwightguth dwightguth left a comment

Choose a reason for hiding this comment

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

We don't need IMP twice.

Comment thread .github/workflows/test-pr.yml
Comment thread .github/workflows/test-pr.yml Outdated
Comment thread README.md Outdated
@rv-jenkins rv-jenkins merged commit 371c2c6 into develop Aug 30, 2023
@rv-jenkins rv-jenkins deleted the profiling-tests branch August 30, 2023 18:42
rv-jenkins pushed a commit that referenced this pull request Sep 5, 2023
Fixes #3517
Follow up of #3603

This PR Introduces Bencher.dev to track performance regressions on our
benchmarks.
The Benchmarks already run in the Test-PR Workflow as "Performance
Tests" CI. This PR introduces a third-party program that will collect
the JSON results of these executions and display them in a graphical
online tool.

It will also set a threshold for the time/space that each test, and if
an execution passes this limit, the tool will post a comment on the PR
warning the developer which tests the regression was observed. The CI
will also fail, which won't prevent the PR from being merged.
@Baltoli Baltoli mentioned this pull request Dec 12, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

automerge new feature A request for a new feature testing

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants