Skip to content
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

Merged
merged 1 commit into from
Jan 9, 2025

Conversation

rvagg
Copy link
Member

@rvagg rvagg commented Jan 8, 2025

  • Add --show-message defaulting to true so you can turn off all the gory message details if you don't want it
  • Add --gas-stats which pretty-prints gas summaries to tables, broken down into compute and storage gas totals and percentages:
    • Per charge type per call
    • Per charge type for the whole execution
    • Per call

Example output for a recent batched PRU3:

$ lotus-shed msg --show-message=false --gas-stats bafy2bzacebasll6n5xti6bdvi2pwvehhy23vpgumxdzpshedrfbjbrrlvpcdy 
Message (f02620) gas charges:
┌────────────────────────────┬───────┬─────────────┬────────┬─────────────┬────────┬───────────┬────────┐
│ Type                       │ Count │ Storage Gas │     S% │ Compute Gas │     C% │ Total Gas │     T% │ 
├────────────────────────────┼───────┼─────────────┼────────┼─────────────┼────────┼───────────┼────────┤
│ OnActorEvent               │    16 │       42464 │   0.02 │      179200 │   0.03 │    221664 │   0.02 │ 
│ 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.18 │           0 │   0.00 │    475000 │   0.05 │ 
│ OnBlockCreate              │   110 │      146140 │   0.06 │      215534 │   0.03 │    361674 │   0.04 │ 
│ OnBlockLink                │   105 │   166108840 │  63.05 │      450998 │   0.06 │ 166559838 │  17.32 │ 
│ OnBlockOpen                │   155 │      358510 │   0.14 │      399600 │   0.06 │    758110 │   0.08 │ 
│ OnBlockOpenBase            │   155 │    29053200 │  11.03 │       46500 │   0.01 │  29099700 │   3.03 │ 
│ OnBlockRead                │   160 │           0 │   0.00 │       51027 │   0.01 │     51027 │   0.01 │ 
│ OnBlockStat                │     1 │           0 │   0.00 │           0 │   0.00 │         0 │   0.00 │ 
│ OnChainMessage             │     1 │    67272900 │  25.53 │       38863 │   0.01 │  67311763 │   7.00 │ 
│ OnChainReturnValue         │     1 │        3900 │   0.00 │           0 │   0.00 │      3900 │   0.00 │ 
│ OnComputeUnsealedSectorCid │    16 │           0 │   0.00 │     1578352 │   0.23 │   1578352 │   0.16 │ 
│ 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 │   0.01 │     75000 │   0.01 │ 
│ OnNetworkContext           │     1 │           0 │   0.00 │           0 │   0.00 │         0 │   0.00 │ 
│ OnScanIpldLinks            │   265 │           0 │   0.00 │     1071060 │   0.15 │   1071060 │   0.11 │ 
│ OnSelfBalance              │     1 │           0 │   0.00 │           0 │   0.00 │         0 │   0.00 │ 
│ OnSyscall                  │   595 │           0 │   0.00 │     8330000 │   1.19 │   8330000 │   0.87 │ 
│ OnValueTransfer            │     1 │           0 │   0.00 │        6000 │   0.00 │      6000 │   0.00 │ 
│ OnVerifyReplicaUpdate      │    16 │           0 │   0.00 │   581058176 │  83.25 │ 581058176 │  60.44 │ 
│ wasm_exec                  │   597 │           0 │   0.00 │   103885956 │  14.88 │ 103885956 │  10.81 │ 
│ wasm_memory_grow           │     5 │           0 │   0.00 │      131075 │   0.02 │    131075 │   0.01 │ 
│ wasm_memory_init           │     1 │           0 │   0.00 │      471860 │   0.07 │    471860 │   0.05 │ 
│ Total                      │  2210 │   263460954 │ 100.00 │   697990101 │ 100.00 │ 961451055 │ 100.00 │ 
└────────────────────────────┴───────┴─────────────┴────────┴─────────────┴────────┴───────────┴────────┘

Subcall (f02620➜f06) gas charges:
┌───────────────────────┬───────┬─────────────┬────────┬─────────────┬────────┬───────────┬────────┐
│ Type                  │ Count │ Storage Gas │     S% │ Compute Gas │     C% │ Total Gas │     T% │ 
├───────────────────────┼───────┼─────────────┼────────┼─────────────┼────────┼───────────┼────────┤
│ OnActorEvent          │    16 │       52384 │   0.01 │      302720 │   0.45 │    355104 │   0.08 │ 
│ OnActorGetRoot        │     1 │           0 │   0.00 │         300 │   0.00 │       300 │   0.00 │ 
│ OnActorSetRoot        │     1 │           0 │   0.00 │         300 │   0.00 │       300 │   0.00 │ 
│ OnBlockCreate         │    65 │      443194 │   0.12 │      503130 │   0.75 │    946324 │   0.22 │ 
│ OnBlockLink           │    63 │   347487960 │  96.45 │     1190650 │   1.78 │ 348678610 │  81.65 │ 
│ OnBlockOpen           │    62 │      668210 │   0.19 │      275700 │   0.41 │    943910 │   0.22 │ 
│ OnBlockOpenBase       │    62 │    11621280 │   3.23 │       18600 │   0.03 │  11639880 │   2.73 │ 
│ OnBlockRead           │    64 │           0 │   0.00 │       38263 │   0.06 │     38263 │   0.01 │ 
│ OnBlockStat           │     1 │           0 │   0.00 │           0 │   0.00 │         0 │   0.00 │ 
│ OnGetActorCodeCid     │     2 │           0 │   0.00 │           0 │   0.00 │         0 │   0.00 │ 
│ OnGetBuiltinActorType │     2 │           0 │   0.00 │           0 │   0.00 │         0 │   0.00 │ 
│ OnHashing             │    55 │           0 │   0.00 │        1498 │   0.00 │      1498 │   0.00 │ 
│ OnMessageContext      │     1 │           0 │   0.00 │           0 │   0.00 │         0 │   0.00 │ 
│ OnMethodInvocation    │     1 │           0 │   0.00 │       75000 │   0.11 │     75000 │   0.02 │ 
│ OnNetworkContext      │     1 │           0 │   0.00 │           0 │   0.00 │         0 │   0.00 │ 
│ OnReturnValue         │     1 │           0 │   0.00 │           0 │   0.00 │         0 │   0.00 │ 
│ OnScanIpldLinks       │   127 │           0 │   0.00 │     1816830 │   2.72 │   1816830 │   0.43 │ 
│ OnSyscall             │   336 │           0 │   0.00 │     4704000 │   7.05 │   4704000 │   1.10 │ 
│ wasm_exec             │   338 │           0 │   0.00 │    57247163 │  85.76 │  57247163 │  13.41 │ 
│ wasm_memory_grow      │     5 │           0 │   0.00 │      131075 │   0.20 │    131075 │   0.03 │ 
│ wasm_memory_init      │     1 │           0 │   0.00 │      445645 │   0.67 │    445645 │   0.10 │ 
│ Total                 │  1205 │   360273028 │ 100.00 │    66750874 │ 100.00 │ 427023902 │ 100.00 │ 
└───────────────────────┴───────┴─────────────┴────────┴─────────────┴────────┴───────────┴────────┘

Subcall (f02620➜f06➜f07) gas charges:
┌────────────────────┬───────┬─────────────┬────────┬─────────────┬────────┬───────────┬────────┐
│ Type               │ Count │ Storage Gas │     S% │ Compute Gas │     C% │ Total Gas │     T% │ 
├────────────────────┼───────┼─────────────┼────────┼─────────────┼────────┼───────────┼────────┤
│ OnActorGetRoot     │     1 │           0 │   0.00 │         300 │   0.01 │       300 │   0.00 │ 
│ OnActorSetRoot     │     1 │           0 │   0.00 │         300 │   0.01 │       300 │   0.00 │ 
│ OnBlockCreate      │     4 │        8507 │   0.08 │       19267 │   0.57 │     27774 │   0.19 │ 
│ OnBlockLink        │     3 │    10733060 │  94.82 │       35113 │   1.04 │  10768173 │  73.22 │ 
│ OnBlockOpen        │     3 │       14990 │   0.13 │       12600 │   0.37 │     27590 │   0.19 │ 
│ OnBlockOpenBase    │     3 │      562320 │   4.97 │         900 │   0.03 │    563220 │   3.83 │ 
│ OnBlockRead        │     4 │           0 │   0.00 │        1112 │   0.03 │      1112 │   0.01 │ 
│ OnBlockStat        │     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 │   2.21 │     75000 │   0.51 │ 
│ OnReturnValue      │     1 │           0 │   0.00 │           0 │   0.00 │         0 │   0.00 │ 
│ OnScanIpldLinks    │     7 │           0 │   0.00 │       48300 │   1.43 │     48300 │   0.33 │ 
│ OnSyscall          │    19 │           0 │   0.00 │      266000 │   7.85 │    266000 │   1.81 │ 
│ wasm_exec          │    21 │           0 │   0.00 │     2457250 │  72.53 │   2457250 │  16.71 │ 
│ wasm_memory_grow   │     1 │           0 │   0.00 │       26215 │   0.77 │     26215 │   0.18 │ 
│ wasm_memory_init   │     1 │           0 │   0.00 │      445645 │  13.15 │    445645 │   3.03 │ 
│ Total              │    72 │    11318877 │ 100.00 │     3388002 │ 100.00 │  14706879 │ 100.00 │ 
└────────────────────┴───────┴─────────────┴────────┴─────────────┴────────┴───────────┴────────┘

Subcall (f02620➜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 │         494 │   0.26 │         156 │   0.02 │       650 │   0.07 │ 
│ OnBlockOpen           │     1 │        1650 │   0.87 │           0 │   0.00 │      1650 │   0.17 │ 
│ OnBlockOpenBase       │     1 │      187440 │  98.87 │         300 │   0.04 │    187740 │  19.08 │ 
│ 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.44 │     75000 │   7.62 │ 
│ 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.10 │    112000 │  11.38 │ 
│ wasm_exec             │    10 │           0 │   0.00 │      134254 │  16.90 │    134254 │  13.64 │ 
│ wasm_memory_grow      │     1 │           0 │   0.00 │       26215 │   3.30 │     26215 │   2.66 │ 
│ wasm_memory_init      │     1 │           0 │   0.00 │      445645 │  56.10 │    445645 │  45.29 │ 
│ Total                 │    32 │      189584 │ 100.00 │      794426 │ 100.00 │    984010 │ 100.00 │ 
└───────────────────────┴───────┴─────────────┴────────┴─────────────┴────────┴───────────┴────────┘

Subcall (f02620➜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 │ 
└───────────────────────┴───────┴─────────────┴────────┴─────────────┴────────┴───────────┴────────┘

Subcall (f02620➜f04) gas charges:
┌───────────────────────┬───────┬─────────────┬────────┬─────────────┬────────┬───────────┬────────┐
│ Type                  │ Count │ Storage Gas │     S% │ Compute Gas │     C% │ Total Gas │     T% │ 
├───────────────────────┼───────┼─────────────┼────────┼─────────────┼────────┼───────────┼────────┤
│ OnActorGetRoot        │     1 │           0 │   0.00 │         300 │   0.01 │       300 │   0.01 │ 
│ OnActorSetRoot        │     1 │           0 │   0.00 │         300 │   0.01 │       300 │   0.01 │ 
│ OnBlockCreate         │     1 │        1323 │   0.06 │        1208 │   0.05 │      2531 │   0.05 │ 
│ OnBlockLink           │     1 │     1351020 │  58.56 │        3438 │   0.14 │   1354458 │  28.59 │ 
│ OnBlockOpen           │     5 │       17540 │   0.76 │       29400 │   1.21 │     46940 │   0.99 │ 
│ OnBlockOpenBase       │     5 │      937200 │  40.62 │        1500 │   0.06 │    938700 │  19.81 │ 
│ OnBlockRead           │     6 │           0 │   0.00 │        1884 │   0.08 │      1884 │   0.04 │ 
│ OnBlockStat           │     1 │           0 │   0.00 │           0 │   0.00 │         0 │   0.00 │ 
│ OnGetActorCodeCid     │     2 │           0 │   0.00 │           0 │   0.00 │         0 │   0.00 │ 
│ OnGetBuiltinActorType │     2 │           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 │   3.08 │     75000 │   1.58 │ 
│ OnScanIpldLinks       │     6 │           0 │   0.00 │       51060 │   2.10 │     51060 │   1.08 │ 
│ OnSyscall             │    23 │           0 │   0.00 │      322000 │  13.24 │    322000 │   6.80 │ 
│ wasm_exec             │    25 │           0 │   0.00 │     1473274 │  60.60 │   1473274 │  31.09 │ 
│ wasm_memory_grow      │     1 │           0 │   0.00 │       26215 │   1.08 │     26215 │   0.55 │ 
│ wasm_memory_init      │     1 │           0 │   0.00 │      445645 │  18.33 │    445645 │   9.41 │ 
│ Total                 │    84 │     2307083 │ 100.00 │     2431245 │ 100.00 │   4738328 │ 100.00 │ 
└───────────────────────┴───────┴─────────────┴────────┴─────────────┴────────┴───────────┴────────┘

Subcall (f02620➜f04) gas charges:
┌───────────────────────┬───────┬─────────────┬────────┬─────────────┬────────┬───────────┬────────┐
│ Type                  │ Count │ Storage Gas │     S% │ Compute Gas │     C% │ Total Gas │     T% │ 
├───────────────────────┼───────┼─────────────┼────────┼─────────────┼────────┼───────────┼────────┤
│ OnActorGetRoot        │     1 │           0 │   0.00 │         300 │   0.01 │       300 │   0.00 │ 
│ OnActorSetRoot        │     1 │           0 │   0.00 │         300 │   0.01 │       300 │   0.00 │ 
│ OnBlockCreate         │     5 │        6277 │   0.03 │       40668 │   1.09 │     46945 │   0.20 │ 
│ OnBlockLink           │     5 │    18207960 │  94.99 │       59708 │   1.59 │  18267668 │  79.71 │ 
│ OnBlockOpen           │     5 │       17540 │   0.09 │       29400 │   0.78 │     46940 │   0.20 │ 
│ OnBlockOpenBase       │     5 │      937200 │   4.89 │        1500 │   0.04 │    938700 │   4.10 │ 
│ OnBlockRead           │     6 │           0 │   0.00 │        1884 │   0.05 │      1884 │   0.01 │ 
│ OnBlockStat           │     1 │           0 │   0.00 │           0 │   0.00 │         0 │   0.00 │ 
│ OnGetActorCodeCid     │     2 │           0 │   0.00 │           0 │   0.00 │         0 │   0.00 │ 
│ OnGetBuiltinActorType │     2 │           0 │   0.00 │           0 │   0.00 │         0 │   0.00 │ 
│ OnHashing             │     2 │           0 │   0.00 │          42 │   0.00 │        42 │   0.00 │ 
│ OnMessageContext      │     1 │           0 │   0.00 │           0 │   0.00 │         0 │   0.00 │ 
│ OnMethodInvocation    │     1 │           0 │   0.00 │       75000 │   2.00 │     75000 │   0.33 │ 
│ OnScanIpldLinks       │    10 │           0 │   0.00 │       99120 │   2.64 │     99120 │   0.43 │ 
│ OnSyscall             │    32 │           0 │   0.00 │      448000 │  11.95 │    448000 │   1.95 │ 
│ wasm_exec             │    34 │           0 │   0.00 │     2519742 │  67.24 │   2519742 │  11.00 │ 
│ wasm_memory_grow      │     1 │           0 │   0.00 │       26215 │   0.70 │     26215 │   0.11 │ 
│ wasm_memory_init      │     1 │           0 │   0.00 │      445645 │  11.89 │    445645 │   1.94 │ 
│ Total                 │   115 │    19168977 │ 100.00 │     3747524 │ 100.00 │  22916501 │ 100.00 │ 
└───────────────────────┴───────┴─────────────┴────────┴─────────────┴────────┴───────────┴────────┘

Subcall (f02620➜f05) gas charges:
┌───────────────────────┬───────┬─────────────┬────────┬─────────────┬────────┬───────────┬────────┐
│ Type                  │ Count │ Storage Gas │     S% │ Compute Gas │     C% │ Total Gas │     T% │ 
├───────────────────────┼───────┼─────────────┼────────┼─────────────┼────────┼───────────┼────────┤
│ OnActorEvent          │    16 │       19248 │   0.00 │      142432 │   0.12 │    161680 │   0.03 │ 
│ OnActorGetRoot        │     1 │           0 │   0.00 │         300 │   0.00 │       300 │   0.00 │ 
│ OnActorSetRoot        │     1 │           0 │   0.00 │         300 │   0.00 │       300 │   0.00 │ 
│ OnBlockCreate         │    99 │      195564 │   0.05 │      763232 │   0.67 │    958796 │   0.18 │ 
│ OnBlockLink           │    98 │   369686920 │  89.57 │     1217832 │   1.06 │ 370904752 │  70.36 │ 
│ OnBlockOpen           │   219 │     1783450 │   0.43 │     1263300 │   1.10 │   3046750 │   0.58 │ 
│ OnBlockOpenBase       │   219 │    41049360 │   9.95 │       65700 │   0.06 │  41115060 │   7.80 │ 
│ OnBlockRead           │   220 │           0 │   0.00 │      122396 │   0.11 │    122396 │   0.02 │ 
│ OnBlockStat           │     1 │           0 │   0.00 │           0 │   0.00 │         0 │   0.00 │ 
│ OnGetActorCodeCid     │     1 │           0 │   0.00 │           0 │   0.00 │         0 │   0.00 │ 
│ OnGetBuiltinActorType │     1 │           0 │   0.00 │           0 │   0.00 │         0 │   0.00 │ 
│ OnHashing             │    82 │           0 │   0.00 │       28540 │   0.02 │     28540 │   0.01 │ 
│ OnMessageContext      │     1 │           0 │   0.00 │           0 │   0.00 │         0 │   0.00 │ 
│ OnMethodInvocation    │     1 │           0 │   0.00 │       75000 │   0.07 │     75000 │   0.01 │ 
│ OnNetworkContext      │     1 │           0 │   0.00 │           0 │   0.00 │         0 │   0.00 │ 
│ OnReturnValue         │     1 │           0 │   0.00 │           0 │   0.00 │         0 │   0.00 │ 
│ OnScanIpldLinks       │   318 │           0 │   0.00 │     3710070 │   3.24 │   3710070 │   0.70 │ 
│ OnSyscall             │   742 │           0 │   0.00 │    10388000 │   9.08 │  10388000 │   1.97 │ 
│ wasm_exec             │   744 │           0 │   0.00 │    95864320 │  83.76 │  95864320 │  18.18 │ 
│ wasm_memory_grow      │    14 │           0 │   0.00 │      367010 │   0.32 │    367010 │   0.07 │ 
│ wasm_memory_init      │     1 │           0 │   0.00 │      445645 │   0.39 │    445645 │   0.08 │ 
│ Total                 │  2781 │   412734542 │ 100.00 │   114454077 │ 100.00 │ 527188619 │ 100.00 │ 
└───────────────────────┴───────┴─────────────┴────────┴─────────────┴────────┴───────────┴────────┘

Total gas charges:
┌────────────────────────────┬───────┬─────────────┬────────┬─────────────┬────────┬────────────┬────────┐
│ Type                       │ Count │ Storage Gas │     S% │ Compute Gas │     C% │  Total Gas │     T% │ 
├────────────────────────────┼───────┼─────────────┼────────┼─────────────┼────────┼────────────┼────────┤
│ OnActorEvent               │    48 │      114096 │   0.01 │      624352 │   0.07 │     738448 │   0.04 │ 
│ OnActorGetRoot             │     9 │           0 │   0.00 │        2700 │   0.00 │       2700 │   0.00 │ 
│ OnActorSetRoot             │     6 │           0 │   0.00 │        1800 │   0.00 │       1800 │   0.00 │ 
│ OnActorUpdate              │     1 │      475000 │   0.04 │           0 │   0.00 │     475000 │   0.02 │ 
│ OnBlockCreate              │   286 │      802244 │   0.08 │     1543431 │   0.17 │    2345675 │   0.12 │ 
│ OnBlockLink                │   275 │   913575760 │  85.41 │     2957739 │   0.33 │  916533499 │  46.76 │ 
│ OnBlockOpen                │   451 │     2863820 │   0.27 │     2010600 │   0.23 │    4874420 │   0.25 │ 
│ OnBlockOpenBase            │   451 │    84535440 │   7.90 │      135300 │   0.02 │   84670740 │   4.32 │ 
│ OnBlockRead                │   462 │           0 │   0.00 │      216734 │   0.02 │     216734 │   0.01 │ 
│ OnBlockStat                │     6 │           0 │   0.00 │           0 │   0.00 │          0 │   0.00 │ 
│ OnChainMessage             │     1 │    67272900 │   6.29 │       38863 │   0.00 │   67311763 │   3.43 │ 
│ OnChainReturnValue         │     1 │        3900 │   0.00 │           0 │   0.00 │       3900 │   0.00 │ 
│ OnComputeUnsealedSectorCid │    16 │           0 │   0.00 │     1578352 │   0.18 │    1578352 │   0.08 │ 
│ OnGetActorCodeCid          │    10 │           0 │   0.00 │           0 │   0.00 │          0 │   0.00 │ 
│ OnGetBuiltinActorType      │    10 │           0 │   0.00 │           0 │   0.00 │          0 │   0.00 │ 
│ OnHashing                  │   140 │           0 │   0.00 │       30101 │   0.00 │      30101 │   0.00 │ 
│ OnMessageContext           │     8 │           0 │   0.00 │           0 │   0.00 │          0 │   0.00 │ 
│ OnMethodInvocation         │     8 │           0 │   0.00 │      600000 │   0.07 │     600000 │   0.03 │ 
│ OnNetworkContext           │     3 │           0 │   0.00 │           0 │   0.00 │          0 │   0.00 │ 
│ OnReturnValue              │     5 │           0 │   0.00 │           0 │   0.00 │          0 │   0.00 │ 
│ OnScanIpldLinks            │   737 │           0 │   0.00 │     6798430 │   0.76 │    6798430 │   0.35 │ 
│ OnSelfBalance              │     1 │           0 │   0.00 │           0 │   0.00 │          0 │   0.00 │ 
│ OnSyscall                  │  1763 │           0 │   0.00 │    24682000 │   2.77 │   24682000 │   1.26 │ 
│ OnValueTransfer            │     1 │           0 │   0.00 │        6000 │   0.00 │       6000 │   0.00 │ 
│ OnVerifyReplicaUpdate      │    16 │           0 │   0.00 │   581058176 │  65.26 │  581058176 │  29.65 │ 
│ wasm_exec                  │  1779 │           0 │   0.00 │   263747328 │  29.62 │  263747328 │  13.46 │ 
│ wasm_memory_grow           │    29 │           0 │   0.00 │      760235 │   0.09 │     760235 │   0.04 │ 
│ wasm_memory_init           │     8 │           0 │   0.00 │     3591375 │   0.40 │    3591375 │   0.18 │ 
│ Total                      │  6531 │  1069643160 │ 100.00 │   890383516 │ 100.00 │ 1960026676 │ 100.00 │ 
└────────────────────────────┴───────┴─────────────┴────────┴─────────────┴────────┴────────────┴────────┘

Gas charges per call:
┌───────────────────┬───────┬─────────────┬────────┬─────────────┬────────┬────────────┬────────┐
│ Type              │ Count │ Storage Gas │     S% │ Compute Gas │     C% │  Total Gas │     T% │ 
├───────────────────┼───────┼─────────────┼────────┼─────────────┼────────┼────────────┼────────┤
│ #1 f02620         │     1 │   263460954 │  24.63 │   697990101 │  78.39 │  961451055 │  49.05 │ 
│ #2 f02620➜f06     │     1 │   360273028 │  33.68 │    66750874 │   7.50 │  427023902 │  21.79 │ 
│ #3 f02620➜f06➜f07 │     1 │    11318877 │   1.06 │     3388002 │   0.38 │   14706879 │   0.75 │ 
│ #4 f02620➜f02     │     1 │      189584 │   0.02 │      794426 │   0.09 │     984010 │   0.05 │ 
│ #5 f02620➜f04     │     1 │      190115 │   0.02 │      827267 │   0.09 │    1017382 │   0.05 │ 
│ #6 f02620➜f04     │     1 │     2307083 │   0.22 │     2431245 │   0.27 │    4738328 │   0.24 │ 
│ #7 f02620➜f04     │     1 │    19168977 │   1.79 │     3747524 │   0.42 │   22916501 │   1.17 │ 
│ #8 f02620➜f05     │     1 │   412734542 │  38.59 │   114454077 │  12.85 │  527188619 │  26.90 │ 
│ Total             │     8 │  1069643160 │ 100.00 │   890383516 │ 100.00 │ 1960026676 │ 100.00 │ 
└───────────────────┴───────┴─────────────┴────────┴─────────────┴────────┴────────────┴────────┘

@rvagg rvagg requested review from Stebalien, Kubuxu and rjan90 January 8, 2025 05:13
@rvagg rvagg force-pushed the rvagg/msg-gas-stats branch 3 times, most recently from 6ddf0ec to 03f2ea0 Compare January 8, 2025 05:20
@rvagg rvagg force-pushed the rvagg/msg-gas-stats branch from 03f2ea0 to 5abc44c Compare January 8, 2025 05:50
Copy link
Contributor

@rjan90 rjan90 left a 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 │ 
└──────────────────┴───────┴─────────────┴────────┴─────────────┴────────┴───────────┴────────┘

@Kubuxu
Copy link
Contributor

Kubuxu commented Jan 8, 2025

Nice! It is quite similar to the HTML output of compute-state but I like it.

@Stebalien
Copy link
Member

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:

  1. Compute gas is all the gas that is consumed inside the FVM (used by FVM benchmarks).
  2. "Other gas" (storage gas) is all the gas that should be ignored when benchmarking. This includes, e.g., the cost of loading blocks from badger, fetching randomness, etc.

I think we should still merge this as-is, this is just an FYI.

@rvagg
Copy link
Member Author

rvagg commented Jan 9, 2025

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.

@rvagg rvagg merged commit 0e4857a into master Jan 9, 2025
85 checks passed
@rvagg rvagg deleted the rvagg/msg-gas-stats branch January 9, 2025 02:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: 🎉 Done
Development

Successfully merging this pull request may close these issues.

4 participants