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
areas for performance improvements #194
Comments
https://github.com/convco/convco/blob/master/src/git.rs#L167 could be faster if the for each stops at the first match. What is the expected time? For example how long does a |
Delegates the path selection to diff options. Other improvement to do for `convco version` is to take 1 diff between the previous version and the head instead of 1 diff per commit. Refs: #194
I was wrong, the code already stopped the for_each at the first path found. Would you be able to test #195? I thought there is a second improvement possible by only doing 1 diff for version, but this will not be possible as we need to make 1 diff per commit to know if the path is included. We know make a diff to before parsing the commit to a conventional commit. It might be useful to parse the commit first and filter on commits that are breaking or increment the version. This would skip useless diff calculations. |
I tried to do some benchmarks, but i could not find a difference. |
Is your feature request related to a problem? Please describe.
We notice that as our monorepo gets bigger, the time to generate a version, for some of our packages, is getting longer, or, at times is longer.
Today, generating a bump version took approx 40s.
I am unsure if this is related to the distance between the "last" tag, or monorepo and needing to filter out paths, or other.
Describe the solution you'd like
assist with investigation and provide feedback on ways to improve the performance.
Additional context
Our monorepo "produces" 7+ packages. Each package is prefixed on its tag (simple directory is tag)
Running convco looks like
which takes approx 42s
Attached is analysis using flamegraph, (https://github.com/flamegraph-rs/flamegraph)
from the same run above.
lib/mylib
)The text was updated successfully, but these errors were encountered: