Performance tuning in Jenkins - Time & Space Complexity
Performance tuning in Jenkins helps us understand how the time to complete tasks changes as we add more work.
We want to know how the time needed grows when we increase the number of jobs or steps.
Analyze the time complexity of the following Jenkins pipeline snippet.
pipeline {
agent any
stages {
stage('Build') {
steps {
script {
for (int i = 0; i < jobs.size(); i++) {
build job: jobs[i]
}
}
}
}
}
}
This code runs a build step for each job in a list, one after another.
Identify the loops, recursion, array traversals that repeat.
- Primary operation: The for-loop that triggers a build for each job.
- How many times: Once for each job in the jobs list.
As the number of jobs increases, the total build time grows proportionally.
| Input Size (n) | Approx. Operations |
|---|---|
| 10 | 10 build steps |
| 100 | 100 build steps |
| 1000 | 1000 build steps |
Pattern observation: The time grows linearly as we add more jobs.
Time Complexity: O(n)
This means the total time increases directly with the number of jobs to build.
[X] Wrong: "Running multiple builds in a loop will always be fast because Jenkins handles them quickly."
[OK] Correct: Each build runs one after another here, so total time adds up with each job.
Understanding how build steps add up helps you explain and improve Jenkins pipeline performance in real projects.
"What if we changed the loop to run builds in parallel? How would the time complexity change?"