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

[SR-4592] Store benchmark results for more commits #47169

Open
palimondo mannequin opened this issue Apr 14, 2017 · 6 comments
Open

[SR-4592] Store benchmark results for more commits #47169

palimondo mannequin opened this issue Apr 14, 2017 · 6 comments

Comments

@palimondo
Copy link
Mannequin

palimondo mannequin commented Apr 14, 2017

Previous ID SR-4592
Radar None
Original Reporter @palimondo
Type Improvement
Additional Detail from JIRA
Votes 0
Component/s Project Infrastructure
Labels Improvement, Performance
Assignee None
Priority Medium

md5: 015f4394acc1858c7e7bfaca6ba8d054

relates to:

  • SR-4591 Performance monitoring: History of benchmark results

Issue Description:

During the PR reviews, when commiters request CI to perform a benchmark, the system currently performs to runs: one to get a baseline from master branch and another to measure the impact of PR on the branch.

It makes sense to centrally store the benchmark results for all PRs (one for each commit on the master branch) to avoid the need for the first run – halving the time required to run benchmark – and to facilitate viewing the history of benchmark results (SR-4591).

@palimondo
Copy link
Mannequin Author

palimondo mannequin commented Apr 14, 2017

cc @lplarson

I came to realize benchmark runs are pretty taxing for CI infrastructure, but I think it makes sense to run at least one benchmark per day, like a nightly build and store those results for the purposes of SR-4591.

I have noticed one of the benchmarks that affects SR-4499 suddenly improved in the last week.

SuffixAnySequence                | 27665    | 105      | -99.6%    | **263.47x** 
DropLastAnySequence              | 34460    | 105      | -99.7%    | **328.19x** 

I’m trying to find a commit that fixed it. At the moment the only process I could think of is to go through commit history in github.com/apple/swift, opening those associated with PRs and looking if the reviewers did request a benchmark. So far, there was none in the last 4 days...

@palimondo
Copy link
Mannequin Author

palimondo mannequin commented Apr 14, 2017

I got lucky and found two benchmark runs in PR #8489 in a span of two days that show the improvement in those tests. But I’m sure we can do better… And, I still don’t know which commit introduced the improvement.

@palimondo
Copy link
Mannequin Author

palimondo mannequin commented Apr 15, 2017

@lplarson The Benchmark_Driver has command submit that uploads results of benchmark to something called LNT host. It also refers to SVN revision. Is this some kind of legacy infrastructure that did what I’m requesting here? Or is this somehow still running somewhere?

@lplarson
Copy link
Member

It's legacy infrastructure that works with LNT. What kind of centralized system do you have in mind?

@palimondo
Copy link
Mannequin Author

palimondo mannequin commented Apr 18, 2017

One that will allow me to solve the above mentioned scenario of searching for particular commit that caused a performance change. See SR-4591. Having a publicly accessible storage of benchmark logs (with git hashes, not just dates) would be a good start. One nightly run on master, when doing PRs with benchmark runs, store those too… There probably isn’t direct equivalence between a merge commit to master and the benchmark run on the merged branch - there could have been other merges/commits on master in between the benchmark run and the merge. But having some reference is better than none. But one benchmark per night might suffice.

Basically something that allows us to build to later add some kind of visualization on top.

BTW, what is LNT?

@lplarson
Copy link
Member

@swift-ci swift-ci transferred this issue from apple/swift-issues Apr 25, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant