PrintAverageExecutionTime times the average execution time of a function.
(count int, f func(i int) error)
| 9 | |
| 10 | // PrintAverageExecutionTime times the average execution time of a function. |
| 11 | func PrintAverageExecutionTime(count int, f func(i int) error) error { |
| 12 | var total time.Duration |
| 13 | for i := 0; i < count; i++ { |
| 14 | start := time.Now() |
| 15 | err := f(i) |
| 16 | duration := time.Since(start) |
| 17 | |
| 18 | if err != nil { |
| 19 | return fmt.Errorf("error while calculating average execution time: %w", err) |
| 20 | } |
| 21 | |
| 22 | total += duration |
| 23 | } |
| 24 | |
| 25 | averageExecutionTime := total / time.Duration(count) |
| 26 | |
| 27 | pterm.Printfln(pterm.Cyan("Average execution time: %s"), pterm.NewStyle(pterm.Bold, pterm.FgLightCyan).Sprint(averageExecutionTime)) |
| 28 | |
| 29 | return nil |
| 30 | } |