substrate icon indicating copy to clipboard operation
substrate copied to clipboard

New Weights for All Pallets

Open shawntabrizi opened this issue 3 years ago • 2 comments

Re-ran the weights for all pallets using the dedicated benchmarking machine.

Following up with checking changes from: https://github.com/paritytech/substrate/pull/11806

Also related: https://github.com/paritytech/polkadot/pull/6025

Comparison: https://weights.tasty.limo/compare?unit=weight&ignore_errors=true&threshold=10&method=guess-worst&repo=substrate&old=master&new=shawntabrizi-weights&path_pattern=frame/*/src/weights.rs

shawntabrizi avatar Sep 21 '22 19:09 shawntabrizi

updated this for all of em

shawntabrizi avatar Oct 11 '22 18:10 shawntabrizi

A bunch of zero weight benchmarks got fixed:

name old new rel
pallet_elections_phragmen/clean_defunct_voters 0 289934676000 inf
pallet_assets/destroy 0 73398653000 inf
pallet_elections_phragmen/election_phragmen 0 21641196000 inf
pallet_fast_unstake/on_idle_check 0 13568572000 inf
pallet_election_provider_multi_phase/submit_unsigned 0 5586779000 inf
pallet_election_provider_multi_phase/feasibility_check 0 5034507000 inf
pallet_uniques/destroy 0 2434694000 inf
pallet_contracts/seal_hash_keccak_256_per_kb 0 316719000 inf
pallet_contracts/seal_hash_sha2_256_per_kb 0 304826000 inf
pallet_contracts/seal_hash_blake2_256_per_kb 0 294551000 inf
pallet_contracts/seal_hash_blake2_128_per_kb 0 290491000 inf
pallet_contracts/seal_instantiate 0 253993000 inf
pallet_alliance/disband 0 253490000 inf
pallet_contracts/seal_call 0 248160000 inf
pallet_contracts/seal_set_code_hash 0 247325000 inf
pallet_contracts/seal_delegate_call 0 247118000 inf
pallet_transaction_storage/store 0 46562000 inf
pallet_uniques/redeposit 0 23185000 inf
pallet_collective/set_members 0 18850000 inf
pallet_alliance/remove_unscrupulous_items 0 17069000 inf
pallet_alliance/add_unscrupulous_items 0 16979000 inf
frame_system/remark_with_event 0 14717000 inf
pallet_bounties/spend_funds 0 8589000 inf
pallet_state_trie_migration/process_top_key 0 5693000 inf
frame_system/kill_prefix 0 5473000 inf
frame_system/kill_storage 0 3717000 inf
frame_system/set_storage 0 3714000 inf
frame_benchmarking/storage_write 0 153000 inf
frame_benchmarking/storage_read 0 132000 inf

There are definitely still potential problems with some of the base weights:

name old new rel
pallet_election_provider_multi_phase/create_snapshot_internal 3186000 558496000 17529%
pallet_election_provider_multi_phase/elect_queued 137653000 1289552000 936%
pallet_contracts/instantiate_with_code 294077000 2014705000 685%
frame_system/remark 1000000 3850000 385%
pallet_membership/clear_prime 1593000 5471000 343%
pallet_contracts/seal_deposit_event_per_topic_and_kb 478106000 1167872000 244%
pallet_ranked_collective/cleanup_poll 6188000 15404000 248%
pallet_ranked_collective/promote_member 11936000 26406000 221%
pallet_gilt/pursue_target_per_queue 14944000 32237000 215%
pallet_ranked_collective/remove_member 16855000 35359000 209%
pallet_ranked_collective/demote_member 17582000 35407000 201%
pallet_membership/set_prime 4869000 9453000 194%
pallet_contracts/on_initialize_per_queue_item 14172000 3055000 21%
pallet_multisig/as_multi_approve 25524000 41675000 163%
pallet_identity/set_subs_old 29623000 11471000 38%
pallet_treasury/on_initialize_proposals 25805000 41429000 160%
pallet_identity/clear_identity 34370000 55131000 160%
pallet_identity/set_subs_new 30012000 11888000 39%
pallet_identity/kill_identity 44988000 67583000 150%
pallet_membership/add_member 15318000 23028000 150%

And with db reads (every benchmark where the weights changed):

name old new
pallet_elections_phragmen/clean_defunct_voters 4 15004
pallet_assets/destroy 5 10505
pallet_elections_phragmen/election_phragmen 280 1986
pallet_fast_unstake/on_idle_check 585 1352
pallet_alliance/disband 4 154
pallet_contracts/seal_take_storage_per_kb 52 8
pallet_contracts/seal_set_storage_per_old_kb 52 8
pallet_contracts/seal_set_storage_per_new_kb 52 8
pallet_contracts/seal_contains_storage_per_kb 51 7
pallet_contracts/seal_clear_storage_per_kb 51 7
pallet_contracts/seal_get_storage_per_kb 51 8
pallet_contracts/seal_set_code_hash 0 6
pallet_contracts/seal_delegate_call 0 6
pallet_staking/payout_stakers_alive_staked 15 10
pallet_staking/new_era 261 257
pallet_staking/payout_stakers_dead_controller 12 9
pallet_transaction_storage/store 6 4
pallet_contracts/seal_instantiate 8 6
pallet_alliance/remove_unscrupulous_items 2 0
pallet_alliance/add_unscrupulous_items 2 0
pallet_ranked_collective/cleanup_poll 1 2
pallet_nomination_pools/withdraw_unbonded_kill 19 20
pallet_nomination_pools/nominate 12 13
pallet_multisig/cancel_as_multi 2 1
pallet_multisig/as_multi_complete 3 2
pallet_gilt/pursue_target_per_item 3 2
pallet_contracts/seal_weight_to_fee 7 6
pallet_contracts/seal_transfer 7 6
pallet_contracts/seal_take_storage 7 6
pallet_contracts/seal_random 7 6
pallet_contracts/seal_clear_storage 7 6
pallet_contracts/seal_call 7 6
pallet_contracts/seal_balance 7 6
pallet_alliance/vote 3 2

And with db writes (also every benchmark where the weights changed):

name old new
pallet_elections_phragmen/clean_defunct_voters 0 15000
pallet_assets/destroy 2 10502
pallet_uniques/destroy 4 2004
pallet_contracts/seal_clear_storage_per_kb 49 4
pallet_contracts/seal_take_storage_per_kb 49 5
pallet_contracts/seal_set_storage_per_old_kb 50 6
pallet_contracts/seal_set_storage_per_new_kb 50 6
pallet_elections_phragmen/election_phragmen 0 6
pallet_staking/payout_stakers_alive_staked 6 3
pallet_contracts/seal_set_code_hash 0 3
pallet_contracts/seal_delegate_call 0 3
pallet_contracts/seal_instantiate 5 3
pallet_alliance/remove_unscrupulous_items 2 0
pallet_alliance/add_unscrupulous_items 2 0
pallet_whitelist/dispatch_whitelisted_call_with_preimage 3 2
pallet_staking/payout_stakers_dead_controller 3 2
pallet_nomination_pools/withdraw_unbonded_kill 16 17
pallet_multisig/cancel_as_multi 2 1
pallet_multisig/as_multi_complete 3 2
pallet_identity/kill_identity 3 2
pallet_identity/clear_identity 2 1
pallet_gilt/pursue_target_per_item 3 2
pallet_contracts/seal_transfer 4 3
pallet_contracts/seal_take_storage 4 3
pallet_contracts/seal_clear_storage 4 3
pallet_contracts/on_initialize_per_queue_item 1 0

koute avatar Oct 12 '22 07:10 koute

updated now including https://github.com/paritytech/substrate/pull/12482

everything looks a little slower, but i dont think that is a big issue

shawntabrizi avatar Oct 21 '22 18:10 shawntabrizi

Okay thanks. Looks like this fixes the weird READ/WRITE numbers discovered in https://github.com/paritytech/polkadot/pull/6173 (SWC).
SWC for this MR.

ggwpez avatar Oct 21 '22 18:10 ggwpez

@ggwpez @koute lets get this one merged

shawntabrizi avatar Nov 08 '22 07:11 shawntabrizi

bot merge

shawntabrizi avatar Nov 08 '22 18:11 shawntabrizi