-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(shed): lotus-shed msg --gas-stats (w/ tabular output) #12817
Conversation
6ddf0ec
to
03f2ea0
Compare
03f2ea0
to
5abc44c
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Played around with the command - and tested multiple of the options. Love the pretty output, makes it very easy to read:
./lotus-shed msg --show-message=false --gas-stats bafy2bzacebvzh5ioebpiwdg4jqfu4n56vgtytvoh2pxh3ejvuurxobmmemce4
Message (f01106668) gas charges:
┌───────────────────────┬───────┬─────────────┬────────┬─────────────┬────────┬───────────┬────────┐
│ Type │ Count │ Storage Gas │ S% │ Compute Gas │ C% │ Total Gas │ T% │
├───────────────────────┼───────┼─────────────┼────────┼─────────────┼────────┼───────────┼────────┤
│ OnActorEvent │ 1 │ 819 │ 0.00 │ 5793 │ 0.00 │ 6612 │ 0.00 │
│ OnActorGetRoot │ 2 │ 0 │ 0.00 │ 600 │ 0.00 │ 600 │ 0.00 │
│ OnActorSetRoot │ 1 │ 0 │ 0.00 │ 300 │ 0.00 │ 300 │ 0.00 │
│ OnActorUpdate │ 1 │ 475000 │ 0.41 │ 0 │ 0.00 │ 475000 │ 0.14 │
│ OnBlockCreate │ 8 │ 230458 │ 0.20 │ 96068 │ 0.04 │ 326526 │ 0.10 │
│ OnBlockLink │ 8 │ 113105680 │ 96.82 │ 407288 │ 0.18 │ 113512968 │ 33.26 │
│ OnBlockOpen │ 10 │ 309940 │ 0.27 │ 19800 │ 0.01 │ 329740 │ 0.10 │
│ OnBlockOpenBase │ 10 │ 1874400 │ 1.60 │ 3000 │ 0.00 │ 1877400 │ 0.55 │
│ OnBlockRead │ 13 │ 0 │ 0.00 │ 13303 │ 0.01 │ 13303 │ 0.00 │
│ OnBlockStat │ 1 │ 0 │ 0.00 │ 0 │ 0.00 │ 0 │ 0.00 │
│ OnChainMessage │ 1 │ 823400 │ 0.70 │ 38863 │ 0.02 │ 862263 │ 0.25 │
│ OnGetActorCodeCid │ 1 │ 0 │ 0.00 │ 0 │ 0.00 │ 0 │ 0.00 │
│ OnGetBuiltinActorType │ 1 │ 0 │ 0.00 │ 0 │ 0.00 │ 0 │ 0.00 │
│ OnHashing │ 1 │ 0 │ 0.00 │ 21 │ 0.00 │ 21 │ 0.00 │
│ OnMessageContext │ 1 │ 0 │ 0.00 │ 0 │ 0.00 │ 0 │ 0.00 │
│ OnMethodInvocation │ 1 │ 0 │ 0.00 │ 75000 │ 0.03 │ 75000 │ 0.02 │
│ OnNetworkContext │ 1 │ 0 │ 0.00 │ 0 │ 0.00 │ 0 │ 0.00 │
│ OnScanIpldLinks │ 18 │ 0 │ 0.00 │ 92600 │ 0.04 │ 92600 │ 0.03 │
│ OnSelfBalance │ 3 │ 0 │ 0.00 │ 0 │ 0.00 │ 0 │ 0.00 │
│ OnSyscall │ 55 │ 0 │ 0.00 │ 770000 │ 0.34 │ 770000 │ 0.23 │
│ wasm_exec │ 57 │ 0 │ 0.00 │ 221749157 │ 98.81 │ 221749157 │ 64.98 │
│ wasm_memory_grow │ 2 │ 0 │ 0.00 │ 681575 │ 0.30 │ 681575 │ 0.20 │
│ wasm_memory_init │ 1 │ 0 │ 0.00 │ 471860 │ 0.21 │ 471860 │ 0.14 │
│ Total │ 198 │ 116819697 │ 100.00 │ 224425228 │ 100.00 │ 341244925 │ 100.00 │
└───────────────────────┴───────┴─────────────┴────────┴─────────────┴────────┴───────────┴────────┘
Subcall (f01106668➜f02) gas charges:
┌───────────────────────┬───────┬─────────────┬────────┬─────────────┬────────┬───────────┬────────┐
│ Type │ Count │ Storage Gas │ S% │ Compute Gas │ C% │ Total Gas │ T% │
├───────────────────────┼───────┼─────────────┼────────┼─────────────┼────────┼───────────┼────────┤
│ OnActorGetRoot │ 1 │ 0 │ 0.00 │ 300 │ 0.04 │ 300 │ 0.03 │
│ OnBlockCreate │ 1 │ 487 │ 0.26 │ 154 │ 0.02 │ 641 │ 0.07 │
│ OnBlockOpen │ 1 │ 1640 │ 0.87 │ 0 │ 0.00 │ 1640 │ 0.17 │
│ OnBlockOpenBase │ 1 │ 187440 │ 98.88 │ 300 │ 0.04 │ 187740 │ 19.09 │
│ OnBlockRead │ 1 │ 0 │ 0.00 │ 66 │ 0.01 │ 66 │ 0.01 │
│ OnGetActorCodeCid │ 1 │ 0 │ 0.00 │ 0 │ 0.00 │ 0 │ 0.00 │
│ OnGetBuiltinActorType │ 1 │ 0 │ 0.00 │ 0 │ 0.00 │ 0 │ 0.00 │
│ OnMessageContext │ 1 │ 0 │ 0.00 │ 0 │ 0.00 │ 0 │ 0.00 │
│ OnMethodInvocation │ 1 │ 0 │ 0.00 │ 75000 │ 9.45 │ 75000 │ 7.63 │
│ OnReturnValue │ 1 │ 0 │ 0.00 │ 0 │ 0.00 │ 0 │ 0.00 │
│ OnScanIpldLinks │ 2 │ 0 │ 0.00 │ 490 │ 0.06 │ 490 │ 0.05 │
│ OnSyscall │ 8 │ 0 │ 0.00 │ 112000 │ 14.11 │ 112000 │ 11.39 │
│ wasm_exec │ 10 │ 0 │ 0.00 │ 133472 │ 16.82 │ 133472 │ 13.58 │
│ wasm_memory_grow │ 1 │ 0 │ 0.00 │ 26215 │ 3.30 │ 26215 │ 2.67 │
│ wasm_memory_init │ 1 │ 0 │ 0.00 │ 445645 │ 56.15 │ 445645 │ 45.33 │
│ Total │ 32 │ 189567 │ 100.00 │ 793642 │ 100.00 │ 983209 │ 100.00 │
└───────────────────────┴───────┴─────────────┴────────┴─────────────┴────────┴───────────┴────────┘
Subcall (f01106668➜f04) gas charges:
┌───────────────────────┬───────┬─────────────┬────────┬─────────────┬────────┬───────────┬────────┐
│ Type │ Count │ Storage Gas │ S% │ Compute Gas │ C% │ Total Gas │ T% │
├───────────────────────┼───────┼─────────────┼────────┼─────────────┼────────┼───────────┼────────┤
│ OnActorGetRoot │ 1 │ 0 │ 0.00 │ 300 │ 0.04 │ 300 │ 0.03 │
│ OnBlockCreate │ 1 │ 745 │ 0.39 │ 236 │ 0.03 │ 981 │ 0.10 │
│ OnBlockOpen │ 1 │ 1930 │ 1.02 │ 600 │ 0.07 │ 2530 │ 0.25 │
│ OnBlockOpenBase │ 1 │ 187440 │ 98.59 │ 300 │ 0.04 │ 187740 │ 18.45 │
│ OnBlockRead │ 1 │ 0 │ 0.00 │ 102 │ 0.01 │ 102 │ 0.01 │
│ OnGetActorCodeCid │ 1 │ 0 │ 0.00 │ 0 │ 0.00 │ 0 │ 0.00 │
│ OnGetBuiltinActorType │ 1 │ 0 │ 0.00 │ 0 │ 0.00 │ 0 │ 0.00 │
│ OnMessageContext │ 1 │ 0 │ 0.00 │ 0 │ 0.00 │ 0 │ 0.00 │
│ OnMethodInvocation │ 1 │ 0 │ 0.00 │ 75000 │ 9.07 │ 75000 │ 7.37 │
│ OnReturnValue │ 1 │ 0 │ 0.00 │ 0 │ 0.00 │ 0 │ 0.00 │
│ OnScanIpldLinks │ 2 │ 0 │ 0.00 │ 1500 │ 0.18 │ 1500 │ 0.15 │
│ OnSyscall │ 8 │ 0 │ 0.00 │ 112000 │ 13.54 │ 112000 │ 11.01 │
│ wasm_exec │ 10 │ 0 │ 0.00 │ 165369 │ 19.99 │ 165369 │ 16.25 │
│ wasm_memory_grow │ 1 │ 0 │ 0.00 │ 26215 │ 3.17 │ 26215 │ 2.58 │
│ wasm_memory_init │ 1 │ 0 │ 0.00 │ 445645 │ 53.87 │ 445645 │ 43.80 │
│ Total │ 32 │ 190115 │ 100.00 │ 827267 │ 100.00 │ 1017382 │ 100.00 │
└───────────────────────┴───────┴─────────────┴────────┴─────────────┴────────┴───────────┴────────┘
Total gas charges:
┌───────────────────────┬───────┬─────────────┬────────┬─────────────┬────────┬───────────┬────────┐
│ Type │ Count │ Storage Gas │ S% │ Compute Gas │ C% │ Total Gas │ T% │
├───────────────────────┼───────┼─────────────┼────────┼─────────────┼────────┼───────────┼────────┤
│ OnActorEvent │ 1 │ 819 │ 0.00 │ 5793 │ 0.00 │ 6612 │ 0.00 │
│ OnActorGetRoot │ 4 │ 0 │ 0.00 │ 1200 │ 0.00 │ 1200 │ 0.00 │
│ OnActorSetRoot │ 1 │ 0 │ 0.00 │ 300 │ 0.00 │ 300 │ 0.00 │
│ OnActorUpdate │ 1 │ 475000 │ 0.41 │ 0 │ 0.00 │ 475000 │ 0.14 │
│ OnBlockCreate │ 10 │ 231690 │ 0.20 │ 96458 │ 0.04 │ 328148 │ 0.10 │
│ OnBlockLink │ 8 │ 113105680 │ 96.51 │ 407288 │ 0.18 │ 113512968 │ 33.07 │
│ OnBlockOpen │ 12 │ 313510 │ 0.27 │ 20400 │ 0.01 │ 333910 │ 0.10 │
│ OnBlockOpenBase │ 12 │ 2249280 │ 1.92 │ 3600 │ 0.00 │ 2252880 │ 0.66 │
│ OnBlockRead │ 15 │ 0 │ 0.00 │ 13471 │ 0.01 │ 13471 │ 0.00 │
│ OnBlockStat │ 1 │ 0 │ 0.00 │ 0 │ 0.00 │ 0 │ 0.00 │
│ OnChainMessage │ 1 │ 823400 │ 0.70 │ 38863 │ 0.02 │ 862263 │ 0.25 │
│ OnGetActorCodeCid │ 3 │ 0 │ 0.00 │ 0 │ 0.00 │ 0 │ 0.00 │
│ OnGetBuiltinActorType │ 3 │ 0 │ 0.00 │ 0 │ 0.00 │ 0 │ 0.00 │
│ OnHashing │ 1 │ 0 │ 0.00 │ 21 │ 0.00 │ 21 │ 0.00 │
│ OnMessageContext │ 3 │ 0 │ 0.00 │ 0 │ 0.00 │ 0 │ 0.00 │
│ OnMethodInvocation │ 3 │ 0 │ 0.00 │ 225000 │ 0.10 │ 225000 │ 0.07 │
│ OnNetworkContext │ 1 │ 0 │ 0.00 │ 0 │ 0.00 │ 0 │ 0.00 │
│ OnReturnValue │ 2 │ 0 │ 0.00 │ 0 │ 0.00 │ 0 │ 0.00 │
│ OnScanIpldLinks │ 22 │ 0 │ 0.00 │ 94590 │ 0.04 │ 94590 │ 0.03 │
│ OnSelfBalance │ 3 │ 0 │ 0.00 │ 0 │ 0.00 │ 0 │ 0.00 │
│ OnSyscall │ 71 │ 0 │ 0.00 │ 994000 │ 0.44 │ 994000 │ 0.29 │
│ wasm_exec │ 77 │ 0 │ 0.00 │ 222047998 │ 98.23 │ 222047998 │ 64.69 │
│ wasm_memory_grow │ 4 │ 0 │ 0.00 │ 734005 │ 0.32 │ 734005 │ 0.21 │
│ wasm_memory_init │ 3 │ 0 │ 0.00 │ 1363150 │ 0.60 │ 1363150 │ 0.40 │
│ Total │ 262 │ 117199379 │ 100.00 │ 226046137 │ 100.00 │ 343245516 │ 100.00 │
└───────────────────────┴───────┴─────────────┴────────┴─────────────┴────────┴───────────┴────────┘
Gas charges per call:
┌──────────────────┬───────┬─────────────┬────────┬─────────────┬────────┬───────────┬────────┐
│ Type │ Count │ Storage Gas │ S% │ Compute Gas │ C% │ Total Gas │ T% │
├──────────────────┼───────┼─────────────┼────────┼─────────────┼────────┼───────────┼────────┤
│ #1 f01106668 │ 1 │ 116819697 │ 99.68 │ 224425228 │ 99.28 │ 341244925 │ 99.42 │
│ #2 f01106668➜f02 │ 1 │ 189567 │ 0.16 │ 793642 │ 0.35 │ 983209 │ 0.29 │
│ #3 f01106668➜f04 │ 1 │ 190115 │ 0.16 │ 827267 │ 0.37 │ 1017382 │ 0.30 │
│ Total │ 3 │ 117199379 │ 100.00 │ 226046137 │ 100.00 │ 343245516 │ 100.00 │
└──────────────────┴───────┴─────────────┴────────┴─────────────┴────────┴───────────┴────────┘
Nice! It is quite similar to the HTML output of compute-state but I like it. |
Note: the storage gas is a bit of a lie here and we should probably fix this in the FVM. You'll note, e.g., that we charge "storage" gas for opening blocks. That's because "storage gas" is actually "other gas" in the FVM where:
I think we should still merge this as-is, this is just an FYI. |
I'll be looking at the storage/other split now that I've been made aware of the nuances. Not sure the scope of the changes required to split them out is small enough to justify working on it in the immediate future but we'll see. |
--show-message
defaulting totrue
so you can turn off all the gory message details if you don't want it--gas-stats
which pretty-prints gas summaries to tables, broken down into compute and storage gas totals and percentages:Example output for a recent batched PRU3: