From 8036be351cdeec06a5a734cd978d05b33d6a2a49 Mon Sep 17 00:00:00 2001 From: Gary Rong Date: Thu, 12 Jun 2025 16:05:22 +0800 Subject: [PATCH] core: change to ResettingTimer --- core/blockchain.go | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/core/blockchain.go b/core/blockchain.go index 6317582327..553be35e53 100644 --- a/core/blockchain.go +++ b/core/blockchain.go @@ -66,7 +66,7 @@ var ( headSafeBlockGauge = metrics.NewRegisteredGauge("chain/head/safe", nil) chainInfoGauge = metrics.NewRegisteredGaugeInfo("chain/info", nil) - chainMgaspsMeter = metrics.NewRegisteredMeter("chain/mgasps", nil) + chainMgaspsMeter = metrics.NewRegisteredResettingTimer("chain/mgasps", nil) accountReadTimer = metrics.NewRegisteredResettingTimer("chain/account/reads", nil) accountHashTimer = metrics.NewRegisteredResettingTimer("chain/account/hashes", nil) @@ -2067,8 +2067,12 @@ func (bc *BlockChain) processBlock(parentRoot common.Hash, block *types.Block, s triedbCommitTimer.Update(statedb.TrieDBCommits) // Trie database commits are complete, we can mark them blockWriteTimer.Update(time.Since(wstart) - max(statedb.AccountCommits, statedb.StorageCommits) /* concurrent */ - statedb.SnapshotCommits - statedb.TrieDBCommits) - blockInsertTimer.UpdateSince(startTime) - chainMgaspsMeter.Mark(int64(float64(res.GasUsed) / 1000_000)) + elapsed := time.Since(startTime) + 1 // prevent zero division + blockInsertTimer.Update(elapsed) + + // TODO(rjl493456442) generalize the ResettingTimer + mgasps := float64(res.GasUsed) * 1000 / float64(elapsed) + chainMgaspsMeter.Update(time.Duration(mgasps)) return &blockProcessingResult{ usedGas: res.GasUsed,