@@ -451,21 +451,30 @@ func watchResources(ctx context.Context, done chan struct{}, logger logutils.Log
451451 startedAt := time .Now ()
452452 debugf ("Started tracking time" )
453453
454- var rssValues []uint64
455- ticker := time .NewTicker (10 * time .Millisecond )
454+ var maxRSSMB , totalRSSMB float64
455+ var iterationsCount int
456+ ticker := time .NewTicker (100 * time .Millisecond )
456457 defer ticker .Stop ()
457458
458459 logEveryRecord := os .Getenv ("GL_MEM_LOG_EVERY" ) == "1"
460+ const MB = 1024 * 1024
459461
460462 track := func () {
463+ debugf ("Starting memory tracing iteration ..." )
461464 var m runtime.MemStats
462465 runtime .ReadMemStats (& m )
463466
464467 if logEveryRecord {
468+ debugf ("Stopping memory tracing iteration, printing ..." )
465469 printMemStats (& m , logger )
466470 }
467471
468- rssValues = append (rssValues , m .Sys )
472+ rssMB := float64 (m .Sys ) / MB
473+ if rssMB > maxRSSMB {
474+ maxRSSMB = rssMB
475+ }
476+ totalRSSMB += rssMB
477+ iterationsCount ++
469478 }
470479
471480 for {
@@ -476,7 +485,7 @@ func watchResources(ctx context.Context, done chan struct{}, logger logutils.Log
476485 case <- ctx .Done ():
477486 stop = true
478487 debugf ("Stopped resources tracking" )
479- case <- ticker .C : // track every second
488+ case <- ticker .C :
480489 }
481490
482491 if stop {
@@ -485,19 +494,10 @@ func watchResources(ctx context.Context, done chan struct{}, logger logutils.Log
485494 }
486495 track ()
487496
488- var avg , max uint64
489- for _ , v := range rssValues {
490- avg += v
491- if v > max {
492- max = v
493- }
494- }
495- avg /= uint64 (len (rssValues ))
497+ avgRSSMB := totalRSSMB / float64 (iterationsCount )
496498
497- const MB = 1024 * 1024
498- maxMB := float64 (max ) / MB
499499 logger .Infof ("Memory: %d samples, avg is %.1fMB, max is %.1fMB" ,
500- len ( rssValues ), float64 ( avg ) / MB , maxMB )
500+ iterationsCount , avgRSSMB , maxRSSMB )
501501 logger .Infof ("Execution took %s" , time .Since (startedAt ))
502502 close (done )
503503}
0 commit comments