diff --git a/trie/hasher.go b/trie/hasher.go index 1e063d8020..c2b4dd7dc9 100644 --- a/trie/hasher.go +++ b/trie/hasher.go @@ -18,6 +18,7 @@ package trie import ( "sync" + "time" "github.com/ethereum/go-ethereum/crypto" "github.com/ethereum/go-ethereum/rlp" @@ -182,6 +183,11 @@ func (h *hasher) encodedBytes() []byte { // hashData hashes the provided data func (h *hasher) hashData(data []byte) hashNode { + defer func(start time.Time) { + hashQPS.Mark(1) + hashTime.Mark(time.Since(start).Nanoseconds()) + }(time.Now()) + n := make(hashNode, 32) h.sha.Reset() h.sha.Write(data) diff --git a/trie/metrics.go b/trie/metrics.go new file mode 100644 index 0000000000..db92e9cb48 --- /dev/null +++ b/trie/metrics.go @@ -0,0 +1,8 @@ +package trie + +import "github.com/ethereum/go-ethereum/metrics" + +var ( + hashQPS = metrics.NewRegisteredMeter("pbss/hash/qps", nil) + hashTime = metrics.NewRegisteredMeter("pbss/hash/time", nil) +)