A Call
itself does not have a weight but only a weight annontation in the form of #[pallet::weight(…)]
.
A Dispatchable
, which is a combination of a Call
and its encoded arguments, has a concrete weight since the weight can depend on the arguments.
The difference is that this a Call
has a formula with variables as weight, not a constant.
So you cannot say how much concrete weight a call has. Further to this the benchmarking functions do not always 1:1 map to calls, which makes it more difficult to compare.
SWC https://github.com/ggwpez/substrate-weight-compare (eg deployed to https://weights.tasty.limo/compare-mr) can compare this if you set the Evaluation Method to Base
which will set all possible components to zero and calculate the concrete value per Call
.
However it does this on a source-code level, not a WASM runtime blob or running RPC node.
It could therefore still happen that you just forget to use the weights in the runtime file.