Email notification plugin in Jenkins - Time & Space Complexity
We want to understand how the time to send email notifications changes as the number of recipients grows.
How does adding more email addresses affect the work Jenkins does?
Analyze the time complexity of the following Jenkins pipeline snippet that sends emails.
pipeline {
agent any
stages {
stage('Notify') {
steps {
script {
def recipients = ['a@example.com', 'b@example.com', 'c@example.com']
for (email in recipients) {
emailext to: email, subject: 'Build Status', body: 'Build completed'
}
}
}
}
}
}
This code sends an email to each address in the recipients list one by one.
Look for repeated actions that take time.
- Primary operation: Sending an email using
emailextinside a loop. - How many times: Once for each recipient in the list.
As the number of recipients grows, the number of email sends grows the same way.
| Input Size (n) | Approx. Operations |
|---|---|
| 10 | 10 email sends |
| 100 | 100 email sends |
| 1000 | 1000 email sends |
Pattern observation: The work grows directly with the number of recipients.
Time Complexity: O(n)
This means the time to send emails increases linearly as you add more recipients.
[X] Wrong: "Sending emails happens all at once, so time stays the same no matter how many recipients there are."
[OK] Correct: Each email send is a separate action that takes time, so more recipients mean more sends and more time.
Understanding how loops affect time helps you explain how Jenkins handles tasks like notifications efficiently.
"What if we changed the code to send one email to all recipients at once? How would the time complexity change?"