Skip to content

Commit 74cb9fb

Browse files
committed
Improve time calculation with defers
1 parent ab7f5aa commit 74cb9fb

File tree

2 files changed

+7
-6
lines changed

2 files changed

+7
-6
lines changed

invoker/pipeline.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,3 +140,7 @@ func (s *JobPipelineState) uploadJobResult(request *masterconn.InvokerJobResult)
140140
logger.Error("Can not send job %s result, error: %s", s.job.ID, err.Error())
141141
}
142142
}
143+
144+
func updateMetrics(metric *time.Duration, start time.Time) {
145+
*metric += time.Since(start)
146+
}

invoker/pipeline_files.go

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ func (s *JobPipelineState) uploadOutput(fileName string, resourceType resource.T
133133
}
134134

135135
func (s *JobPipelineState) copyFileToSandbox(src string, dst string, perm os.FileMode) error {
136-
start := time.Now()
136+
defer updateMetrics(&s.metrics.FileActionsDuration, time.Now())
137137
srcReader, err := os.Open(src)
138138
if err != nil {
139139
return err
@@ -146,7 +146,6 @@ func (s *JobPipelineState) copyFileToSandbox(src string, dst string, perm os.Fil
146146
defer dstWriter.Close()
147147
_, err = io.Copy(dstWriter, srcReader)
148148

149-
s.metrics.FileActionsDuration += time.Since(start)
150149
return nil
151150
}
152151

@@ -171,15 +170,13 @@ func (s *JobPipelineState) limitedReader(r io.Reader) io.Reader {
171170
}
172171

173172
func (s *JobPipelineState) loadResource(getter *storage.CacheGetter, args ...uint64) (*string, error) {
174-
start := time.Now()
173+
defer updateMetrics(&s.metrics.ResourceWaitDuration, time.Now())
175174
res, err := getter.Get(args...)
176-
s.metrics.ResourceWaitDuration += time.Since(start)
177175
return res, err
178176
}
179177

180178
func (s *JobPipelineState) uploadResource(request *storageconn.Request) *storageconn.Response {
181-
start := time.Now()
179+
defer updateMetrics(&s.metrics.SendResultDuration, time.Now())
182180
resp := s.invoker.TS.StorageConn.Upload(request)
183-
s.metrics.SendResultDuration += time.Since(start)
184181
return resp
185182
}

0 commit comments

Comments
 (0)