Add timing in miner-select-messages

Add timing in `lotus-shed mpool miner-select-messages` cmd. And printing amount of message in the mpool
This commit is contained in:
Phi 2023-09-07 11:19:10 +02:00
parent 8ab6eaa6e3
commit 7c61e890c5

View File

@ -2,6 +2,7 @@ package main
import ( import (
"fmt" "fmt"
"time"
"github.com/urfave/cli/v2" "github.com/urfave/cli/v2"
@ -43,10 +44,20 @@ var minerSelectMsgsCmd = &cli.Command{
return err return err
} }
// Get the size of the mempool
pendingMsgs, err := api.MpoolPending(ctx, types.EmptyTSK)
if err != nil {
return err
}
mpoolSize := len(pendingMsgs)
// Measure the time taken by MpoolSelect
startTime := time.Now()
msgs, err := api.MpoolSelect(ctx, head.Key(), cctx.Float64("ticket-quality")) msgs, err := api.MpoolSelect(ctx, head.Key(), cctx.Float64("ticket-quality"))
if err != nil { if err != nil {
return err return err
} }
duration := time.Since(startTime)
var totalGas int64 var totalGas int64
for i, f := range msgs { for i, f := range msgs {
@ -64,6 +75,9 @@ var minerSelectMsgsCmd = &cli.Command{
totalGas += f.Message.GasLimit totalGas += f.Message.GasLimit
} }
// Log the duration, size of the mempool, and number of selected messages
fmt.Printf("Message selection took %s\n", duration)
fmt.Printf("Size of the mempool: %d\n", mpoolSize)
fmt.Println("selected messages: ", len(msgs)) fmt.Println("selected messages: ", len(msgs))
fmt.Printf("total gas limit of selected messages: %d / %d (%0.2f%%)\n", totalGas, build.BlockGasLimit, 100*float64(totalGas)/float64(build.BlockGasLimit)) fmt.Printf("total gas limit of selected messages: %d / %d (%0.2f%%)\n", totalGas, build.BlockGasLimit, 100*float64(totalGas)/float64(build.BlockGasLimit))
return nil return nil