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

Fix memory metering for loading stored values #2509

Conversation

turbolent
Copy link
Member

Closes #2507

Description

Remove unnecessary memory metering for loading of stored values.


  • Targeted PR against master branch
  • Linked to Github issue with discussion and accepted design OR link to spec that describes this work
  • Code follows the standards mentioned here
  • Updated relevant documentation
  • Re-reviewed Files changed in the Github PR explorer
  • Added appropriate labels

@turbolent turbolent requested a review from SupunS as a code owner May 27, 2023 00:22
@turbolent turbolent self-assigned this May 27, 2023
@turbolent turbolent requested a review from dsainati1 as a code owner May 27, 2023 00:22
@github-actions
Copy link

github-actions bot commented May 27, 2023

Cadence Benchstat comparison

This branch with compared with the base branch onflow:feature/stable-cadence commit e857884
The command for i in {1..N}; do go test ./... -run=XXX -bench=. -benchmem -shuffle=on; done was used.
Bench tests were run a total of 7 times on each branch.

Collapsed results for better readability

old.txtnew.txt
time/opdelta
DecodeBatchEventsCCF-2203ms ± 0%202ms ± 0%~(p=1.000 n=1+1)
DecodeBatchEventsJSON-2602ms ± 0%949ms ± 0%~(p=1.000 n=1+1)
DecodeCCF/FlowFees.FeesDeducted-24.49µs ± 0%4.82µs ± 0%~(p=1.000 n=1+1)
DecodeCCF/FlowFees.TokensWithdrawn-23.34µs ± 0%3.36µs ± 0%~(p=1.000 n=1+1)
DecodeCCF/FlowIDTableStaking.DelegatorRewardsPaid-24.53µs ± 0%4.71µs ± 0%~(p=1.000 n=1+1)
DecodeCCF/FlowIDTableStaking.EpochTotalRewardsPaid-25.15µs ± 0%5.23µs ± 0%~(p=1.000 n=1+1)
DecodeCCF/FlowIDTableStaking.NewWeeklyPayout-23.49µs ± 0%3.43µs ± 0%~(p=1.000 n=1+1)
DecodeCCF/FlowIDTableStaking.RewardsPaid-24.22µs ± 0%3.97µs ± 0%~(p=1.000 n=1+1)
DecodeCCF/FlowToken.TokensDeposited-24.12µs ± 0%4.10µs ± 0%~(p=1.000 n=1+1)
DecodeCCF/FlowToken.TokensDeposited_with_nil_receiver-24.14µs ± 0%3.91µs ± 0%~(p=1.000 n=1+1)
DecodeCCF/FlowToken.TokensMinted-23.37µs ± 0%3.47µs ± 0%~(p=1.000 n=1+1)
DecodeCCF/FlowToken.TokensWithdrawn-24.19µs ± 0%4.11µs ± 0%~(p=1.000 n=1+1)
DecodeJSON/FlowFees.FeesDeducted-223.1µs ± 0%15.8µs ± 0%~(p=1.000 n=1+1)
DecodeJSON/FlowFees.TokensWithdrawn-213.7µs ± 0%8.7µs ± 0%~(p=1.000 n=1+1)
DecodeJSON/FlowIDTableStaking.DelegatorRewardsPaid-224.7µs ± 0%13.5µs ± 0%~(p=1.000 n=1+1)
DecodeJSON/FlowIDTableStaking.EpochTotalRewardsPaid-219.6µs ± 0%19.2µs ± 0%~(p=1.000 n=1+1)
DecodeJSON/FlowIDTableStaking.NewWeeklyPayout-29.03µs ± 0%8.80µs ± 0%~(p=1.000 n=1+1)
DecodeJSON/FlowIDTableStaking.RewardsPaid-211.7µs ± 0%11.6µs ± 0%~(p=1.000 n=1+1)
DecodeJSON/FlowToken.TokensDeposited-212.0µs ± 0%12.3µs ± 0%~(p=1.000 n=1+1)
DecodeJSON/FlowToken.TokensDeposited_with_nil_receiver-210.9µs ± 0%11.3µs ± 0%~(p=1.000 n=1+1)
DecodeJSON/FlowToken.TokensMinted-28.86µs ± 0%8.83µs ± 0%~(p=1.000 n=1+1)
DecodeJSON/FlowToken.TokensWithdrawn-212.4µs ± 0%12.0µs ± 0%~(p=1.000 n=1+1)
EncodeBatchEventsCCF-2136ms ± 0%137ms ± 0%~(p=1.000 n=1+1)
EncodeBatchEventsJSON-2160ms ± 0%168ms ± 0%~(p=1.000 n=1+1)
EncodeCCF/FlowFees.FeesDeducted-23.05µs ± 0%4.64µs ± 0%~(p=1.000 n=1+1)
EncodeCCF/FlowFees.TokensWithdrawn-22.43µs ± 0%4.04µs ± 0%~(p=1.000 n=1+1)
EncodeCCF/FlowIDTableStaking.DelegatorRewardsPaid-23.02µs ± 0%4.40µs ± 0%~(p=1.000 n=1+1)
EncodeCCF/FlowIDTableStaking.EpochTotalRewardsPaid-23.49µs ± 0%5.14µs ± 0%~(p=1.000 n=1+1)
EncodeCCF/FlowIDTableStaking.NewWeeklyPayout-22.37µs ± 0%2.43µs ± 0%~(p=1.000 n=1+1)
EncodeCCF/FlowIDTableStaking.RewardsPaid-22.64µs ± 0%2.63µs ± 0%~(p=1.000 n=1+1)
EncodeCCF/FlowToken.TokensDeposited-22.75µs ± 0%2.69µs ± 0%~(p=1.000 n=1+1)
EncodeCCF/FlowToken.TokensDeposited_with_nil_receiver-22.71µs ± 0%2.67µs ± 0%~(p=1.000 n=1+1)
EncodeCCF/FlowToken.TokensMinted-22.35µs ± 0%2.38µs ± 0%~(p=1.000 n=1+1)
EncodeCCF/FlowToken.TokensWithdrawn-22.73µs ± 0%2.72µs ± 0%~(p=1.000 n=1+1)
EncodeJSON/FlowFees.FeesDeducted-23.93µs ± 0%4.02µs ± 0%~(p=1.000 n=1+1)
EncodeJSON/FlowFees.TokensWithdrawn-22.19µs ± 0%2.19µs ± 0%~(p=1.000 n=1+1)
EncodeJSON/FlowIDTableStaking.DelegatorRewardsPaid-23.60µs ± 0%3.49µs ± 0%~(p=1.000 n=1+1)
EncodeJSON/FlowIDTableStaking.EpochTotalRewardsPaid-24.94µs ± 0%5.02µs ± 0%~(p=1.000 n=1+1)
EncodeJSON/FlowIDTableStaking.NewWeeklyPayout-22.24µs ± 0%2.25µs ± 0%~(p=1.000 n=1+1)
EncodeJSON/FlowIDTableStaking.RewardsPaid-23.04µs ± 0%2.95µs ± 0%~(p=1.000 n=1+1)
EncodeJSON/FlowToken.TokensDeposited-23.38µs ± 0%3.44µs ± 0%~(p=1.000 n=1+1)
EncodeJSON/FlowToken.TokensDeposited_with_nil_receiver-22.69µs ± 0%2.66µs ± 0%~(p=1.000 n=1+1)
EncodeJSON/FlowToken.TokensMinted-22.17µs ± 0%2.20µs ± 0%~(p=1.000 n=1+1)
EncodeJSON/FlowToken.TokensWithdrawn-23.21µs ± 0%3.28µs ± 0%~(p=1.000 n=1+1)
ExportType/composite_type-2585ns ± 0%522ns ± 0%~(p=1.000 n=1+1)
ExportType/simple_type-2113ns ± 0%112ns ± 0%~(p=1.000 n=1+1)
InterpretRecursionFib-23.01ms ± 0%3.05ms ± 0%~(p=1.000 n=1+1)
NewInterpreter/new_interpreter-21.75µs ± 0%1.74µs ± 0%~(p=1.000 n=1+1)
NewInterpreter/new_sub-interpreter-2962ns ± 0%857ns ± 0%~(p=1.000 n=1+1)
ParseArray-210.1ms ± 0%10.2ms ± 0%~(p=1.000 n=1+1)
ParseDeploy/byte_array-215.8ms ± 0%16.4ms ± 0%~(p=1.000 n=1+1)
ParseDeploy/decode_hex-21.71ms ± 0%1.58ms ± 0%~(p=1.000 n=1+1)
ParseFungibleToken/With_memory_metering-2261µs ± 0%252µs ± 0%~(p=1.000 n=1+1)
ParseFungibleToken/Without_memory_metering-2202µs ± 0%194µs ± 0%~(p=1.000 n=1+1)
ParseInfix-28.82µs ± 0%8.61µs ± 0%~(p=1.000 n=1+1)
QualifiedIdentifierCreation/One_level-22.86ns ± 0%2.86ns ± 0%~(p=1.000 n=1+1)
QualifiedIdentifierCreation/Three_levels-2164ns ± 0%156ns ± 0%~(p=1.000 n=1+1)
RuntimeScriptNoop-25.75µs ± 0%5.65µs ± 0%~(p=1.000 n=1+1)
SuperTypeInference/arrays-2430ns ± 0%465ns ± 0%~(p=1.000 n=1+1)
SuperTypeInference/composites-2186ns ± 0%178ns ± 0%~(p=1.000 n=1+1)
SuperTypeInference/integers-2189ns ± 0%194ns ± 0%~(p=1.000 n=1+1)
ValueIsSubtypeOfSemaType-2123ns ± 0%118ns ± 0%~(p=1.000 n=1+1)
 
alloc/opdelta
DecodeBatchEventsCCF-266.1MB ± 0%66.1MB ± 0%~(p=1.000 n=1+1)
DecodeBatchEventsJSON-2244MB ± 0%244MB ± 0%~(p=1.000 n=1+1)
DecodeCCF/FlowFees.FeesDeducted-21.39kB ± 0%1.39kB ± 0%~(all equal)
DecodeCCF/FlowFees.TokensWithdrawn-21.20kB ± 0%1.20kB ± 0%~(all equal)
DecodeCCF/FlowIDTableStaking.DelegatorRewardsPaid-21.47kB ± 0%1.47kB ± 0%~(all equal)
DecodeCCF/FlowIDTableStaking.EpochTotalRewardsPaid-21.48kB ± 0%1.48kB ± 0%~(all equal)
DecodeCCF/FlowIDTableStaking.NewWeeklyPayout-21.25kB ± 0%1.25kB ± 0%~(all equal)
DecodeCCF/FlowIDTableStaking.RewardsPaid-21.37kB ± 0%1.37kB ± 0%~(all equal)
DecodeCCF/FlowToken.TokensDeposited-21.31kB ± 0%1.31kB ± 0%~(all equal)
DecodeCCF/FlowToken.TokensDeposited_with_nil_receiver-21.30kB ± 0%1.30kB ± 0%~(all equal)
DecodeCCF/FlowToken.TokensMinted-21.20kB ± 0%1.20kB ± 0%~(all equal)
DecodeCCF/FlowToken.TokensWithdrawn-21.32kB ± 0%1.32kB ± 0%~(all equal)
DecodeJSON/FlowFees.FeesDeducted-26.00kB ± 0%6.00kB ± 0%~(all equal)
DecodeJSON/FlowFees.TokensWithdrawn-23.60kB ± 0%3.60kB ± 0%~(all equal)
DecodeJSON/FlowIDTableStaking.DelegatorRewardsPaid-25.43kB ± 0%5.43kB ± 0%~(all equal)
DecodeJSON/FlowIDTableStaking.EpochTotalRewardsPaid-27.35kB ± 0%7.35kB ± 0%~(all equal)
DecodeJSON/FlowIDTableStaking.NewWeeklyPayout-23.64kB ± 0%3.64kB ± 0%~(all equal)
DecodeJSON/FlowIDTableStaking.RewardsPaid-24.54kB ± 0%4.54kB ± 0%~(all equal)
DecodeJSON/FlowToken.TokensDeposited-24.88kB ± 0%4.88kB ± 0%~(all equal)
DecodeJSON/FlowToken.TokensDeposited_with_nil_receiver-24.46kB ± 0%4.46kB ± 0%~(all equal)
DecodeJSON/FlowToken.TokensMinted-23.60kB ± 0%3.60kB ± 0%~(all equal)
DecodeJSON/FlowToken.TokensWithdrawn-24.88kB ± 0%4.88kB ± 0%~(all equal)
EncodeBatchEventsCCF-262.4MB ± 0%62.4MB ± 0%~(p=1.000 n=1+1)
EncodeBatchEventsJSON-239.1MB ± 0%39.1MB ± 0%~(p=1.000 n=1+1)
EncodeCCF/FlowFees.FeesDeducted-21.22kB ± 0%1.22kB ± 0%~(all equal)
EncodeCCF/FlowFees.TokensWithdrawn-21.17kB ± 0%1.17kB ± 0%~(all equal)
EncodeCCF/FlowIDTableStaking.DelegatorRewardsPaid-21.44kB ± 0%1.44kB ± 0%~(all equal)
EncodeCCF/FlowIDTableStaking.EpochTotalRewardsPaid-21.41kB ± 0%1.41kB ± 0%~(all equal)
EncodeCCF/FlowIDTableStaking.NewWeeklyPayout-21.34kB ± 0%1.34kB ± 0%~(all equal)
EncodeCCF/FlowIDTableStaking.RewardsPaid-21.42kB ± 0%1.42kB ± 0%~(all equal)
EncodeCCF/FlowToken.TokensDeposited-21.22kB ± 0%1.22kB ± 0%~(all equal)
EncodeCCF/FlowToken.TokensDeposited_with_nil_receiver-21.20kB ± 0%1.20kB ± 0%~(all equal)
EncodeCCF/FlowToken.TokensMinted-21.17kB ± 0%1.17kB ± 0%~(all equal)
EncodeCCF/FlowToken.TokensWithdrawn-21.22kB ± 0%1.22kB ± 0%~(all equal)
EncodeJSON/FlowFees.FeesDeducted-2864B ± 0%864B ± 0%~(all equal)
EncodeJSON/FlowFees.TokensWithdrawn-2504B ± 0%504B ± 0%~(all equal)
EncodeJSON/FlowIDTableStaking.DelegatorRewardsPaid-2888B ± 0%888B ± 0%~(all equal)
EncodeJSON/FlowIDTableStaking.EpochTotalRewardsPaid-21.08kB ± 0%1.08kB ± 0%~(all equal)
EncodeJSON/FlowIDTableStaking.NewWeeklyPayout-2552B ± 0%552B ± 0%~(all equal)
EncodeJSON/FlowIDTableStaking.RewardsPaid-2752B ± 0%752B ± 0%~(all equal)
EncodeJSON/FlowToken.TokensDeposited-2776B ± 0%776B ± 0%~(all equal)
EncodeJSON/FlowToken.TokensDeposited_with_nil_receiver-2640B ± 0%640B ± 0%~(all equal)
EncodeJSON/FlowToken.TokensMinted-2512B ± 0%512B ± 0%~(all equal)
EncodeJSON/FlowToken.TokensWithdrawn-2768B ± 0%768B ± 0%~(all equal)
ExportType/composite_type-2120B ± 0%120B ± 0%~(all equal)
ExportType/simple_type-20.00B 0.00B ~(all equal)
InterpretRecursionFib-21.00MB ± 0%1.00MB ± 0%~(p=1.000 n=1+1)
NewInterpreter/new_interpreter-2928B ± 0%928B ± 0%~(all equal)
NewInterpreter/new_sub-interpreter-2200B ± 0%200B ± 0%~(all equal)
ParseArray-22.65MB ± 0%3.03MB ± 0%~(p=1.000 n=1+1)
ParseDeploy/byte_array-24.33MB ± 0%4.33MB ± 0%~(p=1.000 n=1+1)
ParseDeploy/decode_hex-2214kB ± 0%214kB ± 0%~(p=1.000 n=1+1)
ParseFungibleToken/With_memory_metering-229.7kB ± 0%29.7kB ± 0%~(p=1.000 n=1+1)
ParseFungibleToken/Without_memory_metering-229.7kB ± 0%29.7kB ± 0%~(all equal)
ParseInfix-21.91kB ± 0%1.91kB ± 0%~(p=1.000 n=1+1)
QualifiedIdentifierCreation/One_level-20.00B 0.00B ~(all equal)
QualifiedIdentifierCreation/Three_levels-264.0B ± 0%64.0B ± 0%~(all equal)
RuntimeScriptNoop-23.21kB ± 0%3.21kB ± 0%~(all equal)
SuperTypeInference/arrays-296.0B ± 0%96.0B ± 0%~(all equal)
SuperTypeInference/composites-20.00B 0.00B ~(all equal)
SuperTypeInference/integers-20.00B 0.00B ~(all equal)
ValueIsSubtypeOfSemaType-248.0B ± 0%48.0B ± 0%~(all equal)
 
allocs/opdelta
DecodeBatchEventsCCF-21.48M ± 0%1.48M ± 0%~(p=1.000 n=1+1)
DecodeBatchEventsJSON-24.70M ± 0%4.70M ± 0%~(p=1.000 n=1+1)
DecodeCCF/FlowFees.FeesDeducted-230.0 ± 0%30.0 ± 0%~(all equal)
DecodeCCF/FlowFees.TokensWithdrawn-226.0 ± 0%26.0 ± 0%~(all equal)
DecodeCCF/FlowIDTableStaking.DelegatorRewardsPaid-230.0 ± 0%30.0 ± 0%~(all equal)
DecodeCCF/FlowIDTableStaking.EpochTotalRewardsPaid-232.0 ± 0%32.0 ± 0%~(all equal)
DecodeCCF/FlowIDTableStaking.NewWeeklyPayout-226.0 ± 0%26.0 ± 0%~(all equal)
DecodeCCF/FlowIDTableStaking.RewardsPaid-229.0 ± 0%29.0 ± 0%~(all equal)
DecodeCCF/FlowToken.TokensDeposited-231.0 ± 0%31.0 ± 0%~(all equal)
DecodeCCF/FlowToken.TokensDeposited_with_nil_receiver-229.0 ± 0%29.0 ± 0%~(all equal)
DecodeCCF/FlowToken.TokensMinted-226.0 ± 0%26.0 ± 0%~(all equal)
DecodeCCF/FlowToken.TokensWithdrawn-231.0 ± 0%31.0 ± 0%~(all equal)
DecodeJSON/FlowFees.FeesDeducted-2126 ± 0%126 ± 0%~(all equal)
DecodeJSON/FlowFees.TokensWithdrawn-271.0 ± 0%71.0 ± 0%~(all equal)
DecodeJSON/FlowIDTableStaking.DelegatorRewardsPaid-2102 ± 0%102 ± 0%~(all equal)
DecodeJSON/FlowIDTableStaking.EpochTotalRewardsPaid-2159 ± 0%159 ± 0%~(all equal)
DecodeJSON/FlowIDTableStaking.NewWeeklyPayout-270.0 ± 0%70.0 ± 0%~(all equal)
DecodeJSON/FlowIDTableStaking.RewardsPaid-287.0 ± 0%87.0 ± 0%~(all equal)
DecodeJSON/FlowToken.TokensDeposited-295.0 ± 0%95.0 ± 0%~(all equal)
DecodeJSON/FlowToken.TokensDeposited_with_nil_receiver-286.0 ± 0%86.0 ± 0%~(all equal)
DecodeJSON/FlowToken.TokensMinted-271.0 ± 0%71.0 ± 0%~(all equal)
DecodeJSON/FlowToken.TokensWithdrawn-295.0 ± 0%95.0 ± 0%~(all equal)
EncodeBatchEventsCCF-2950k ± 0%950k ± 0%~(p=1.000 n=1+1)
EncodeBatchEventsJSON-2853k ± 0%853k ± 0%~(p=1.000 n=1+1)
EncodeCCF/FlowFees.FeesDeducted-219.0 ± 0%19.0 ± 0%~(all equal)
EncodeCCF/FlowFees.TokensWithdrawn-219.0 ± 0%19.0 ± 0%~(all equal)
EncodeCCF/FlowIDTableStaking.DelegatorRewardsPaid-219.0 ± 0%19.0 ± 0%~(all equal)
EncodeCCF/FlowIDTableStaking.EpochTotalRewardsPaid-219.0 ± 0%19.0 ± 0%~(all equal)
EncodeCCF/FlowIDTableStaking.NewWeeklyPayout-219.0 ± 0%19.0 ± 0%~(all equal)
EncodeCCF/FlowIDTableStaking.RewardsPaid-219.0 ± 0%19.0 ± 0%~(all equal)
EncodeCCF/FlowToken.TokensDeposited-220.0 ± 0%20.0 ± 0%~(all equal)
EncodeCCF/FlowToken.TokensDeposited_with_nil_receiver-220.0 ± 0%20.0 ± 0%~(all equal)
EncodeCCF/FlowToken.TokensMinted-219.0 ± 0%19.0 ± 0%~(all equal)
EncodeCCF/FlowToken.TokensWithdrawn-220.0 ± 0%20.0 ± 0%~(all equal)
EncodeJSON/FlowFees.FeesDeducted-219.0 ± 0%19.0 ± 0%~(all equal)
EncodeJSON/FlowFees.TokensWithdrawn-212.0 ± 0%12.0 ± 0%~(all equal)
EncodeJSON/FlowIDTableStaking.DelegatorRewardsPaid-216.0 ± 0%16.0 ± 0%~(all equal)
EncodeJSON/FlowIDTableStaking.EpochTotalRewardsPaid-225.0 ± 0%25.0 ± 0%~(all equal)
EncodeJSON/FlowIDTableStaking.NewWeeklyPayout-212.0 ± 0%12.0 ± 0%~(all equal)
EncodeJSON/FlowIDTableStaking.RewardsPaid-215.0 ± 0%15.0 ± 0%~(all equal)
EncodeJSON/FlowToken.TokensDeposited-219.0 ± 0%19.0 ± 0%~(all equal)
EncodeJSON/FlowToken.TokensDeposited_with_nil_receiver-214.0 ± 0%14.0 ± 0%~(all equal)
EncodeJSON/FlowToken.TokensMinted-213.0 ± 0%13.0 ± 0%~(all equal)
EncodeJSON/FlowToken.TokensWithdrawn-218.0 ± 0%18.0 ± 0%~(all equal)
ExportType/composite_type-23.00 ± 0%3.00 ± 0%~(all equal)
ExportType/simple_type-20.00 0.00 ~(all equal)
InterpretRecursionFib-218.9k ± 0%18.9k ± 0%~(all equal)
NewInterpreter/new_interpreter-215.0 ± 0%15.0 ± 0%~(all equal)
NewInterpreter/new_sub-interpreter-24.00 ± 0%4.00 ± 0%~(all equal)
ParseArray-259.5k ± 0%59.6k ± 0%~(p=1.000 n=1+1)
ParseDeploy/byte_array-289.4k ± 0%89.4k ± 0%~(p=1.000 n=1+1)
ParseDeploy/decode_hex-263.0 ± 0%63.0 ± 0%~(all equal)
ParseFungibleToken/With_memory_metering-2778 ± 0%778 ± 0%~(all equal)
ParseFungibleToken/Without_memory_metering-2778 ± 0%778 ± 0%~(all equal)
ParseInfix-248.0 ± 0%48.0 ± 0%~(all equal)
QualifiedIdentifierCreation/One_level-20.00 0.00 ~(all equal)
QualifiedIdentifierCreation/Three_levels-22.00 ± 0%2.00 ± 0%~(all equal)
RuntimeScriptNoop-251.0 ± 0%51.0 ± 0%~(all equal)
SuperTypeInference/arrays-23.00 ± 0%3.00 ± 0%~(all equal)
SuperTypeInference/composites-20.00 0.00 ~(all equal)
SuperTypeInference/integers-20.00 0.00 ~(all equal)
ValueIsSubtypeOfSemaType-21.00 ± 0%1.00 ± 0%~(all equal)
 

runtime/common/metering.go Show resolved Hide resolved
runtime/common/metering.go Show resolved Hide resolved
runtime/interpreter/value.go Show resolved Hide resolved
runtime/interpreter/value.go Show resolved Hide resolved
runtime/interpreter/value.go Show resolved Hide resolved
runtime/interpreter/value.go Outdated Show resolved Hide resolved
runtime/interpreter/value.go Show resolved Hide resolved
@codecov
Copy link

codecov bot commented May 27, 2023

Codecov Report

Patch coverage: 95.29% and project coverage change: +0.01% 🎉

Comparison is base (e857884) 79.78% compared to head (2dd271d) 79.79%.

Additional details and impacted files
@@                    Coverage Diff                     @@
##           feature/stable-cadence    #2509      +/-   ##
==========================================================
+ Coverage                   79.78%   79.79%   +0.01%     
==========================================================
  Files                         342      342              
  Lines                       80778    80850      +72     
==========================================================
+ Hits                        64445    64517      +72     
  Misses                      14024    14024              
  Partials                     2309     2309              
Flag Coverage Δ
unittests 79.79% <95.29%> (+0.01%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files Changed Coverage Δ
runtime/interpreter/value.go 67.23% <94.44%> (+0.14%) ⬆️
runtime/interpreter/storage.go 72.14% <94.73%> (+3.09%) ⬆️
runtime/common/metering.go 92.30% <100.00%> (-0.02%) ⬇️

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

Copy link
Contributor

@dsainati1 dsainati1 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed for code quality; I am not 100% confident on the metering changes themselves.

@turbolent
Copy link
Member Author

Added it to the Impl Sync agenda

Copy link
Member

@fxamacker fxamacker left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The approach makes sense!

I left a couple of comments regarding NewDictionaryMemoryUsages and NewAtreeMapPreAllocatedElementsMemoryUsage and a question about DictionaryValue.Clone().

runtime/interpreter/value.go Show resolved Hide resolved
runtime/interpreter/value.go Show resolved Hide resolved
runtime/interpreter/value.go Show resolved Hide resolved
@turbolent turbolent force-pushed the bastian/2507-fix-stored-value-conversion-metering branch from b83b7db to 1bf62fb Compare September 13, 2023 23:08
@turbolent turbolent changed the base branch from master to feature/stable-cadence September 13, 2023 23:08
@turbolent
Copy link
Member Author

Rebased on Stable Cadence

@turbolent turbolent requested a review from fxamacker September 13, 2023 23:47
@turbolent
Copy link
Member Author

@dsainati1 @SupunS @fxamacker Could you please have another look?

Copy link
Member

@fxamacker fxamacker left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice! 👍 I focused on metering related to atree.

@turbolent turbolent merged commit 5cbc388 into feature/stable-cadence Oct 5, 2023
10 of 11 checks passed
@turbolent turbolent deleted the bastian/2507-fix-stored-value-conversion-metering branch October 5, 2023 17:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Memory estimate too high when swapping an element in a Dictionary
5 participants