github.com/fibonacci-chain/fbc@v0.0.0-20231124064014-c7636198c1e9/libs/system/trace/summary.go (about)

     1  package trace
     2  
     3  import (
     4  	"fmt"
     5  	//"github.com/fibonacci-chain/fbc/libs/tendermint/libs/log"
     6  )
     7  
     8  var sum *Summary
     9  
    10  func insertElapse(tag string, elapse int64) {
    11  	if sum == nil {
    12  		return
    13  	}
    14  	sum.insert(tag, elapse)
    15  }
    16  
    17  func GetTraceSummary() *Summary {
    18  	once.Do(func() {
    19  		sum = &Summary{
    20  			statisticMap: make(map[string]int64),
    21  		}
    22  	})
    23  	return sum
    24  }
    25  
    26  //func (s *Summary) Dump(logger log.Logger)  {
    27  //	for _, k := range s.keys {
    28  //		logger.With("module", "main").Info("Summary", k, s.statisticMap[k])
    29  //	}
    30  //}
    31  
    32  func (s *Summary) Dump(context string) {
    33  	var res string
    34  	for _, k := range s.keys {
    35  		res += fmt.Sprintf("%s=%d, ", k, s.statisticMap[k])
    36  	}
    37  	//systemlog.Println("Elapse Summary", context, res)
    38  	fmt.Printf("Elapse Summary: %s\n", res)
    39  }
    40  
    41  func (s *Summary) insert(tag string, elapse int64) {
    42  	_, ok := s.statisticMap[tag]
    43  	if !ok {
    44  		return
    45  	}
    46  	s.statisticMap[tag] += elapse
    47  }