Skip to content

Add a new StringBuilder type which allows constructing strings efficiently#4453

Open
turbolent wants to merge 1 commit intomasterfrom
bastian/string-builder
Open

Add a new StringBuilder type which allows constructing strings efficiently#4453
turbolent wants to merge 1 commit intomasterfrom
bastian/string-builder

Conversation

@turbolent
Copy link
Copy Markdown
Member

@turbolent turbolent commented Mar 18, 2026

Description

Currently, building strings in Cadence requires repeated use of String.concat(), which creates a new string for every concatenation, and is very inefficient (O(n^2) for building a String from n parts).

Add a new type StringBuilder which allows efficient string construction. StringBuilder uses an internal buffer and builds the final string once (O(n)).


  • 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 self-assigned this Mar 18, 2026
@github-actions
Copy link
Copy Markdown

Dependency Review

✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.

Scanned Files

None

@github-actions
Copy link
Copy Markdown

Benchstat comparison

  • Base branch: onflow:master
  • Base commit: 6e7bbb2
Results

old.txtnew.txt
time/opdelta
pkg:github.com/onflow/cadence/interpreter goos:linux goarch:amd64
ByteArrayTransfer-41.29µs ± 0%1.27µs ± 0%~(p=1.000 n=1+1)
ByteArrayValueToByteSlice-480.6ns ± 0%85.6ns ± 0%~(p=1.000 n=1+1)
ByteSliceToByteArrayValue-41.15µs ± 0%0.93µs ± 0%~(p=1.000 n=1+1)
pkg:github.com/onflow/cadence/bbq/compiler goos:linux goarch:amd64
CompileFungibleTokenTransferTransaction-4132µs ± 0%134µs ± 0%~(p=1.000 n=1+1)
CompileTime-436.7µs ± 0%37.3µs ± 0%~(p=1.000 n=1+1)
pkg:github.com/onflow/cadence/runtime goos:linux goarch:amd64
ContractFunctionInvocation-4422µs ± 0%399µs ± 0%~(p=1.000 n=1+1)
pkg:github.com/onflow/cadence/bbq/vm/test goos:linux goarch:amd64
ContractImport-4214µs ± 0%223µs ± 0%~(p=1.000 n=1+1)
pkg:github.com/onflow/cadence/encoding/ccf goos:linux goarch:amd64
DecodeBatchEventsCCF-4133ms ± 0%130ms ± 0%~(p=1.000 n=1+1)
DecodeBatchEventsJSON-4427ms ± 0%426ms ± 0%~(p=1.000 n=1+1)
DecodeCCF/FlowFees.FeesDeducted-42.94µs ± 0%3.04µs ± 0%~(p=1.000 n=1+1)
DecodeCCF/FlowFees.TokensWithdrawn-42.21µs ± 0%2.17µs ± 0%~(p=1.000 n=1+1)
DecodeCCF/FlowIDTableStaking.DelegatorRewardsPaid-42.99µs ± 0%2.85µs ± 0%~(p=1.000 n=1+1)
DecodeCCF/FlowIDTableStaking.EpochTotalRewardsPaid-43.24µs ± 0%3.21µs ± 0%~(p=1.000 n=1+1)
DecodeCCF/FlowIDTableStaking.NewWeeklyPayout-42.20µs ± 0%2.17µs ± 0%~(p=1.000 n=1+1)
DecodeCCF/FlowIDTableStaking.RewardsPaid-42.55µs ± 0%2.53µs ± 0%~(p=1.000 n=1+1)
DecodeCCF/FlowToken.TokensDeposited-42.65µs ± 0%2.71µs ± 0%~(p=1.000 n=1+1)
DecodeCCF/FlowToken.TokensDeposited_with_nil_receiver-42.57µs ± 0%2.55µs ± 0%~(p=1.000 n=1+1)
DecodeCCF/FlowToken.TokensMinted-42.21µs ± 0%2.17µs ± 0%~(p=1.000 n=1+1)
DecodeCCF/FlowToken.TokensWithdrawn-42.64µs ± 0%2.62µs ± 0%~(p=1.000 n=1+1)
DecodeJSON/FlowFees.FeesDeducted-410.8µs ± 0%10.6µs ± 0%~(p=1.000 n=1+1)
DecodeJSON/FlowFees.TokensWithdrawn-46.22µs ± 0%6.09µs ± 0%~(p=1.000 n=1+1)
DecodeJSON/FlowIDTableStaking.DelegatorRewardsPaid-49.89µs ± 0%9.63µs ± 0%~(p=1.000 n=1+1)
DecodeJSON/FlowIDTableStaking.EpochTotalRewardsPaid-413.3µs ± 0%13.0µs ± 0%~(p=1.000 n=1+1)
DecodeJSON/FlowIDTableStaking.NewWeeklyPayout-46.29µs ± 0%6.25µs ± 0%~(p=1.000 n=1+1)
DecodeJSON/FlowIDTableStaking.RewardsPaid-48.12µs ± 0%8.07µs ± 0%~(p=1.000 n=1+1)
DecodeJSON/FlowToken.TokensDeposited-48.54µs ± 0%8.54µs ± 0%~(p=1.000 n=1+1)
DecodeJSON/FlowToken.TokensDeposited_with_nil_receiver-47.71µs ± 0%7.65µs ± 0%~(p=1.000 n=1+1)
DecodeJSON/FlowToken.TokensMinted-46.18µs ± 0%6.17µs ± 0%~(p=1.000 n=1+1)
DecodeJSON/FlowToken.TokensWithdrawn-48.52µs ± 0%8.48µs ± 0%~(p=1.000 n=1+1)
pkg:github.com/onflow/cadence/interpreter goos:linux goarch:amd64
EMVAddressTransfer-43.73µs ± 0%3.53µs ± 0%~(p=1.000 n=1+1)
Emit-44.75ms ± 0%4.61ms ± 0%~(p=1.000 n=1+1)
pkg:github.com/onflow/cadence/encoding/ccf goos:linux goarch:amd64
EncodeBatchEventsCCF-489.3ms ± 0%89.1ms ± 0%~(p=1.000 n=1+1)
EncodeBatchEventsJSON-497.2ms ± 0%96.9ms ± 0%~(p=1.000 n=1+1)
EncodeCCF/FlowFees.FeesDeducted-42.01µs ± 0%1.99µs ± 0%~(p=1.000 n=1+1)
EncodeCCF/FlowFees.TokensWithdrawn-41.60µs ± 0%1.60µs ± 0%~(p=1.000 n=1+1)
EncodeCCF/FlowIDTableStaking.DelegatorRewardsPaid-41.94µs ± 0%1.96µs ± 0%~(p=1.000 n=1+1)
EncodeCCF/FlowIDTableStaking.EpochTotalRewardsPaid-42.28µs ± 0%2.26µs ± 0%~(p=1.000 n=1+1)
EncodeCCF/FlowIDTableStaking.NewWeeklyPayout-41.65µs ± 0%1.64µs ± 0%~(p=1.000 n=1+1)
EncodeCCF/FlowIDTableStaking.RewardsPaid-41.79µs ± 0%1.76µs ± 0%~(p=1.000 n=1+1)
EncodeCCF/FlowToken.TokensDeposited-41.80µs ± 0%1.80µs ± 0%~(p=1.000 n=1+1)
EncodeCCF/FlowToken.TokensDeposited_with_nil_receiver-41.77µs ± 0%1.78µs ± 0%~(p=1.000 n=1+1)
EncodeCCF/FlowToken.TokensMinted-41.59µs ± 0%1.59µs ± 0%~(p=1.000 n=1+1)
EncodeCCF/FlowToken.TokensWithdrawn-41.79µs ± 0%1.80µs ± 0%~(p=1.000 n=1+1)
EncodeJSON/FlowFees.FeesDeducted-42.25µs ± 0%2.25µs ± 0%~(p=1.000 n=1+1)
EncodeJSON/FlowFees.TokensWithdrawn-41.31µs ± 0%1.31µs ± 0%~(p=1.000 n=1+1)
EncodeJSON/FlowIDTableStaking.DelegatorRewardsPaid-42.05µs ± 0%2.08µs ± 0%~(p=1.000 n=1+1)
EncodeJSON/FlowIDTableStaking.EpochTotalRewardsPaid-42.84µs ± 0%2.80µs ± 0%~(p=1.000 n=1+1)
EncodeJSON/FlowIDTableStaking.NewWeeklyPayout-41.35µs ± 0%1.34µs ± 0%~(p=1.000 n=1+1)
EncodeJSON/FlowIDTableStaking.RewardsPaid-41.79µs ± 0%1.74µs ± 0%~(p=1.000 n=1+1)
EncodeJSON/FlowToken.TokensDeposited-42.01µs ± 0%2.01µs ± 0%~(p=1.000 n=1+1)
EncodeJSON/FlowToken.TokensDeposited_with_nil_receiver-41.57µs ± 0%1.57µs ± 0%~(p=1.000 n=1+1)
EncodeJSON/FlowToken.TokensMinted-41.33µs ± 0%1.32µs ± 0%~(p=1.000 n=1+1)
EncodeJSON/FlowToken.TokensWithdrawn-41.98µs ± 0%1.98µs ± 0%~(p=1.000 n=1+1)
pkg:github.com/onflow/cadence/interpreter goos:linux goarch:amd64
EnumTransfer-41.37µs ± 0%1.46µs ± 0%~(p=1.000 n=1+1)
pkg:github.com/onflow/cadence/runtime goos:linux goarch:amd64
ExportType/composite_type-4266ns ± 0%270ns ± 0%~(p=1.000 n=1+1)
ExportType/simple_type-477.5ns ± 0%78.2ns ± 0%~(p=1.000 n=1+1)
pkg:github.com/onflow/cadence/bbq/vm/test goos:linux goarch:amd64
FTTransfer-4166µs ± 0%169µs ± 0%~(p=1.000 n=1+1)
pkg:github.com/onflow/cadence/sema goos:linux goarch:amd64
FlowTokenContract-4608µs ± 0%634µs ± 0%~(p=1.000 n=1+1)
pkg:github.com/onflow/cadence/interpreter goos:linux goarch:amd64
ImperativeFib-424.3µs ± 0%22.8µs ± 0%~(p=1.000 n=1+1)
pkg:github.com/onflow/cadence/bbq/vm/test goos:linux goarch:amd64
ImperativeFib-425.6µs ± 0%24.7µs ± 0%~(p=1.000 n=1+1)
ImperativeFibNewCompilerNewVM-448.5µs ± 0%50.1µs ± 0%~(p=1.000 n=1+1)
ImperativeFibNewVM-428.0µs ± 0%28.0µs ± 0%~(p=1.000 n=1+1)
pkg:github.com/onflow/cadence/interpreter goos:linux goarch:amd64
InterpretRecursionFib-42.47ms ± 0%2.26ms ± 0%~(p=1.000 n=1+1)
pkg:github.com/onflow/cadence/bbq/vm/test goos:linux goarch:amd64
InterpreterFTTransfer-4142µs ± 0%152µs ± 0%~(p=1.000 n=1+1)
InterpreterImperativeFib-423.0µs ± 0%23.2µs ± 0%~(p=1.000 n=1+1)
InterpreterNewStruct-465.4µs ± 0%67.2µs ± 0%~(p=1.000 n=1+1)
MethodCall/concrete_type_method_call-440.8µs ± 0%42.5µs ± 0%~(p=1.000 n=1+1)
MethodCall/interface_method_call-462.7µs ± 0%66.8µs ± 0%~(p=1.000 n=1+1)
pkg:github.com/onflow/cadence/interpreter goos:linux goarch:amd64
NewInterpreter/new_interpreter-4932ns ± 0%908ns ± 0%~(p=1.000 n=1+1)
NewInterpreter/new_sub-interpreter-4354ns ± 0%326ns ± 0%~(p=1.000 n=1+1)
pkg:github.com/onflow/cadence/bbq/vm/test goos:linux goarch:amd64
NewResource-498.4µs ± 0%103.2µs ± 0%~(p=1.000 n=1+1)
NewStruct-441.1µs ± 0%42.1µs ± 0%~(p=1.000 n=1+1)
NewStructRaw-43.02µs ± 0%3.17µs ± 0%~(p=1.000 n=1+1)
pkg:github.com/onflow/cadence/sema goos:linux goarch:amd64
QualifiedIdentifierCreation/One_level-42.49ns ± 0%2.18ns ± 0%~(p=1.000 n=1+1)
QualifiedIdentifierCreation/Three_levels-485.9ns ± 0%79.8ns ± 0%~(p=1.000 n=1+1)
pkg:github.com/onflow/cadence/bbq/vm/test goos:linux goarch:amd64
RecursionFib-41.35ms ± 0%1.42ms ± 0%~(p=1.000 n=1+1)
RuntimeFungibleTokenTransfer-4759µs ± 0%753µs ± 0%~(p=1.000 n=1+1)
pkg:github.com/onflow/cadence/runtime goos:linux goarch:amd64
RuntimeFungibleTokenTransferInterpreter-4631µs ± 0%607µs ± 0%~(p=1.000 n=1+1)
RuntimeFungibleTokenTransferVM-4735µs ± 0%717µs ± 0%~(p=1.000 n=1+1)
RuntimeResourceDictionaryValues-42.72ms ± 0%2.66ms ± 0%~(p=1.000 n=1+1)
RuntimeResourceTracking-410.3ms ± 0%10.2ms ± 0%~(p=1.000 n=1+1)
RuntimeScriptNoop-415.5µs ± 0%15.2µs ± 0%~(p=1.000 n=1+1)
RuntimeVMInvokeContractImperativeFib-444.5µs ± 0%41.4µs ± 0%~(p=1.000 n=1+1)
pkg:github.com/onflow/cadence/sema goos:linux goarch:amd64
SuperTypeInference/arrays-4224ns ± 0%230ns ± 0%~(p=1.000 n=1+1)
SuperTypeInference/composites-492.0ns ± 0%92.3ns ± 0%~(p=1.000 n=1+1)
SuperTypeInference/integers-4319ns ± 0%314ns ± 0%~(p=1.000 n=1+1)
pkg:github.com/onflow/cadence/interpreter goos:linux goarch:amd64
ValueIsSubtypeOfSemaType-468.4ns ± 0%61.5ns ± 0%~(p=1.000 n=1+1)
 
alloc/opdelta
pkg:github.com/onflow/cadence/interpreter goos:linux goarch:amd64
ByteArrayTransfer-41.04kB ± 0%1.06kB ± 0%~(p=1.000 n=1+1)
ByteArrayValueToByteSlice-432.0B ± 0%32.0B ± 0%~(all equal)
ByteSliceToByteArrayValue-4860B ± 0%842B ± 0%~(p=1.000 n=1+1)
pkg:github.com/onflow/cadence/bbq/compiler goos:linux goarch:amd64
CompileFungibleTokenTransferTransaction-482.2kB ± 0%82.2kB ± 0%~(all equal)
CompileTime-416.6kB ± 0%16.6kB ± 0%~(all equal)
pkg:github.com/onflow/cadence/runtime goos:linux goarch:amd64
ContractFunctionInvocation-4146kB ± 0%146kB ± 0%~(p=1.000 n=1+1)
pkg:github.com/onflow/cadence/bbq/vm/test goos:linux goarch:amd64
ContractImport-473.5kB ± 0%73.7kB ± 0%~(p=1.000 n=1+1)
pkg:github.com/onflow/cadence/encoding/ccf goos:linux goarch:amd64
DecodeBatchEventsCCF-471.5MB ± 0%71.5MB ± 0%~(p=1.000 n=1+1)
DecodeBatchEventsJSON-4262MB ± 0%262MB ± 0%~(p=1.000 n=1+1)
DecodeCCF/FlowFees.FeesDeducted-41.50kB ± 0%1.50kB ± 0%~(all equal)
DecodeCCF/FlowFees.TokensWithdrawn-41.31kB ± 0%1.31kB ± 0%~(all equal)
DecodeCCF/FlowIDTableStaking.DelegatorRewardsPaid-41.58kB ± 0%1.58kB ± 0%~(all equal)
DecodeCCF/FlowIDTableStaking.EpochTotalRewardsPaid-41.60kB ± 0%1.60kB ± 0%~(all equal)
DecodeCCF/FlowIDTableStaking.NewWeeklyPayout-41.36kB ± 0%1.36kB ± 0%~(all equal)
DecodeCCF/FlowIDTableStaking.RewardsPaid-41.48kB ± 0%1.48kB ± 0%~(all equal)
DecodeCCF/FlowToken.TokensDeposited-41.42kB ± 0%1.42kB ± 0%~(all equal)
DecodeCCF/FlowToken.TokensDeposited_with_nil_receiver-41.41kB ± 0%1.41kB ± 0%~(all equal)
DecodeCCF/FlowToken.TokensMinted-41.31kB ± 0%1.31kB ± 0%~(all equal)
DecodeCCF/FlowToken.TokensWithdrawn-41.43kB ± 0%1.43kB ± 0%~(all equal)
DecodeJSON/FlowFees.FeesDeducted-46.37kB ± 0%6.37kB ± 0%~(all equal)
DecodeJSON/FlowFees.TokensWithdrawn-43.84kB ± 0%3.84kB ± 0%~(all equal)
DecodeJSON/FlowIDTableStaking.DelegatorRewardsPaid-45.82kB ± 0%5.82kB ± 0%~(all equal)
DecodeJSON/FlowIDTableStaking.EpochTotalRewardsPaid-47.80kB ± 0%7.80kB ± 0%~(all equal)
DecodeJSON/FlowIDTableStaking.NewWeeklyPayout-43.90kB ± 0%3.90kB ± 0%~(all equal)
DecodeJSON/FlowIDTableStaking.RewardsPaid-44.86kB ± 0%4.86kB ± 0%~(all equal)
DecodeJSON/FlowToken.TokensDeposited-45.23kB ± 0%5.23kB ± 0%~(all equal)
DecodeJSON/FlowToken.TokensDeposited_with_nil_receiver-44.78kB ± 0%4.78kB ± 0%~(all equal)
DecodeJSON/FlowToken.TokensMinted-43.86kB ± 0%3.86kB ± 0%~(all equal)
DecodeJSON/FlowToken.TokensWithdrawn-45.23kB ± 0%5.23kB ± 0%~(all equal)
pkg:github.com/onflow/cadence/interpreter goos:linux goarch:amd64
EMVAddressTransfer-42.47kB ± 0%2.46kB ± 0%~(p=1.000 n=1+1)
Emit-41.50MB ± 0%1.50MB ± 0%~(p=1.000 n=1+1)
pkg:github.com/onflow/cadence/encoding/ccf goos:linux goarch:amd64
EncodeBatchEventsCCF-465.8MB ± 0%65.8MB ± 0%~(p=1.000 n=1+1)
EncodeBatchEventsJSON-440.7MB ± 0%40.7MB ± 0%~(p=1.000 n=1+1)
EncodeCCF/FlowFees.FeesDeducted-41.29kB ± 0%1.29kB ± 0%~(all equal)
EncodeCCF/FlowFees.TokensWithdrawn-41.24kB ± 0%1.24kB ± 0%~(all equal)
EncodeCCF/FlowIDTableStaking.DelegatorRewardsPaid-41.51kB ± 0%1.51kB ± 0%~(all equal)
EncodeCCF/FlowIDTableStaking.EpochTotalRewardsPaid-41.48kB ± 0%1.48kB ± 0%~(all equal)
EncodeCCF/FlowIDTableStaking.NewWeeklyPayout-41.42kB ± 0%1.42kB ± 0%~(all equal)
EncodeCCF/FlowIDTableStaking.RewardsPaid-41.50kB ± 0%1.50kB ± 0%~(all equal)
EncodeCCF/FlowToken.TokensDeposited-41.29kB ± 0%1.29kB ± 0%~(all equal)
EncodeCCF/FlowToken.TokensDeposited_with_nil_receiver-41.27kB ± 0%1.27kB ± 0%~(all equal)
EncodeCCF/FlowToken.TokensMinted-41.24kB ± 0%1.24kB ± 0%~(all equal)
EncodeCCF/FlowToken.TokensWithdrawn-41.29kB ± 0%1.29kB ± 0%~(all equal)
EncodeJSON/FlowFees.FeesDeducted-4896B ± 0%896B ± 0%~(all equal)
EncodeJSON/FlowFees.TokensWithdrawn-4536B ± 0%536B ± 0%~(all equal)
EncodeJSON/FlowIDTableStaking.DelegatorRewardsPaid-4920B ± 0%920B ± 0%~(all equal)
EncodeJSON/FlowIDTableStaking.EpochTotalRewardsPaid-41.11kB ± 0%1.11kB ± 0%~(all equal)
EncodeJSON/FlowIDTableStaking.NewWeeklyPayout-4584B ± 0%584B ± 0%~(all equal)
EncodeJSON/FlowIDTableStaking.RewardsPaid-4784B ± 0%784B ± 0%~(all equal)
EncodeJSON/FlowToken.TokensDeposited-4808B ± 0%808B ± 0%~(all equal)
EncodeJSON/FlowToken.TokensDeposited_with_nil_receiver-4672B ± 0%672B ± 0%~(all equal)
EncodeJSON/FlowToken.TokensMinted-4544B ± 0%544B ± 0%~(all equal)
EncodeJSON/FlowToken.TokensWithdrawn-4800B ± 0%800B ± 0%~(all equal)
pkg:github.com/onflow/cadence/interpreter goos:linux goarch:amd64
EnumTransfer-4829B ± 0%896B ± 0%~(p=1.000 n=1+1)
pkg:github.com/onflow/cadence/runtime goos:linux goarch:amd64
ExportType/composite_type-4120B ± 0%120B ± 0%~(all equal)
ExportType/simple_type-40.00B 0.00B ~(all equal)
pkg:github.com/onflow/cadence/bbq/vm/test goos:linux goarch:amd64
FTTransfer-453.4kB ± 0%53.4kB ± 0%~(p=1.000 n=1+1)
pkg:github.com/onflow/cadence/sema goos:linux goarch:amd64
FlowTokenContract-4223kB ± 0%223kB ± 0%~(p=1.000 n=1+1)
pkg:github.com/onflow/cadence/interpreter goos:linux goarch:amd64
ImperativeFib-48.30kB ± 0%8.30kB ± 0%~(all equal)
pkg:github.com/onflow/cadence/bbq/vm/test goos:linux goarch:amd64
ImperativeFib-45.34kB ± 0%5.34kB ± 0%~(all equal)
ImperativeFibNewCompilerNewVM-425.7kB ± 0%25.7kB ± 0%~(all equal)
ImperativeFibNewVM-48.07kB ± 0%8.07kB ± 0%~(all equal)
pkg:github.com/onflow/cadence/interpreter goos:linux goarch:amd64
InterpretRecursionFib-41.19MB ± 0%1.19MB ± 0%~(all equal)
pkg:github.com/onflow/cadence/bbq/vm/test goos:linux goarch:amd64
InterpreterFTTransfer-450.6kB ± 0%50.7kB ± 0%~(p=1.000 n=1+1)
InterpreterImperativeFib-48.29kB ± 0%8.29kB ± 0%~(all equal)
InterpreterNewStruct-424.4kB ± 0%24.6kB ± 0%~(p=1.000 n=1+1)
MethodCall/concrete_type_method_call-49.45kB ± 0%9.36kB ± 0%~(p=1.000 n=1+1)
MethodCall/interface_method_call-416.8kB ± 0%16.9kB ± 0%~(p=1.000 n=1+1)
pkg:github.com/onflow/cadence/interpreter goos:linux goarch:amd64
NewInterpreter/new_interpreter-4976B ± 0%976B ± 0%~(all equal)
NewInterpreter/new_sub-interpreter-4232B ± 0%232B ± 0%~(all equal)
pkg:github.com/onflow/cadence/bbq/vm/test goos:linux goarch:amd64
NewResource-443.3kB ± 0%43.3kB ± 0%~(p=1.000 n=1+1)
NewStruct-413.0kB ± 0%13.0kB ± 0%~(p=1.000 n=1+1)
NewStructRaw-41.70kB ± 0%1.71kB ± 0%~(p=1.000 n=1+1)
pkg:github.com/onflow/cadence/sema goos:linux goarch:amd64
QualifiedIdentifierCreation/One_level-40.00B 0.00B ~(all equal)
QualifiedIdentifierCreation/Three_levels-464.0B ± 0%64.0B ± 0%~(all equal)
pkg:github.com/onflow/cadence/bbq/vm/test goos:linux goarch:amd64
RecursionFib-4244kB ± 0%244kB ± 0%~(all equal)
RuntimeFungibleTokenTransfer-4248kB ± 0%247kB ± 0%~(p=1.000 n=1+1)
pkg:github.com/onflow/cadence/runtime goos:linux goarch:amd64
RuntimeFungibleTokenTransferInterpreter-4170kB ± 0%170kB ± 0%~(p=1.000 n=1+1)
RuntimeFungibleTokenTransferVM-4193kB ± 0%192kB ± 0%~(p=1.000 n=1+1)
RuntimeResourceDictionaryValues-41.76MB ± 0%1.76MB ± 0%~(p=1.000 n=1+1)
RuntimeResourceTracking-47.00MB ± 0%6.98MB ± 0%~(p=1.000 n=1+1)
RuntimeScriptNoop-48.06kB ± 0%8.06kB ± 0%~(all equal)
RuntimeVMInvokeContractImperativeFib-413.3kB ± 0%13.3kB ± 0%~(all equal)
pkg:github.com/onflow/cadence/sema goos:linux goarch:amd64
SuperTypeInference/arrays-472.0B ± 0%72.0B ± 0%~(all equal)
SuperTypeInference/composites-40.00B 0.00B ~(all equal)
SuperTypeInference/integers-40.00B 0.00B ~(all equal)
pkg:github.com/onflow/cadence/interpreter goos:linux goarch:amd64
ValueIsSubtypeOfSemaType-432.0B ± 0%32.0B ± 0%~(all equal)
 
allocs/opdelta
pkg:github.com/onflow/cadence/interpreter goos:linux goarch:amd64
ByteArrayTransfer-47.00 ± 0%7.00 ± 0%~(all equal)
ByteArrayValueToByteSlice-41.00 ± 0%1.00 ± 0%~(all equal)
ByteSliceToByteArrayValue-45.00 ± 0%5.00 ± 0%~(all equal)
pkg:github.com/onflow/cadence/bbq/compiler goos:linux goarch:amd64
CompileFungibleTokenTransferTransaction-4563 ± 0%563 ± 0%~(all equal)
CompileTime-4202 ± 0%202 ± 0%~(all equal)
pkg:github.com/onflow/cadence/runtime goos:linux goarch:amd64
ContractFunctionInvocation-42.42k ± 0%2.42k ± 0%~(all equal)
pkg:github.com/onflow/cadence/bbq/vm/test goos:linux goarch:amd64
ContractImport-41.25k ± 0%1.25k ± 0%~(all equal)
pkg:github.com/onflow/cadence/encoding/ccf goos:linux goarch:amd64
DecodeBatchEventsCCF-41.53M ± 0%1.53M ± 0%~(p=1.000 n=1+1)
DecodeBatchEventsJSON-45.44M ± 0%5.44M ± 0%~(p=1.000 n=1+1)
DecodeCCF/FlowFees.FeesDeducted-431.0 ± 0%31.0 ± 0%~(all equal)
DecodeCCF/FlowFees.TokensWithdrawn-427.0 ± 0%27.0 ± 0%~(all equal)
DecodeCCF/FlowIDTableStaking.DelegatorRewardsPaid-431.0 ± 0%31.0 ± 0%~(all equal)
DecodeCCF/FlowIDTableStaking.EpochTotalRewardsPaid-433.0 ± 0%33.0 ± 0%~(all equal)
DecodeCCF/FlowIDTableStaking.NewWeeklyPayout-427.0 ± 0%27.0 ± 0%~(all equal)
DecodeCCF/FlowIDTableStaking.RewardsPaid-430.0 ± 0%30.0 ± 0%~(all equal)
DecodeCCF/FlowToken.TokensDeposited-432.0 ± 0%32.0 ± 0%~(all equal)
DecodeCCF/FlowToken.TokensDeposited_with_nil_receiver-430.0 ± 0%30.0 ± 0%~(all equal)
DecodeCCF/FlowToken.TokensMinted-427.0 ± 0%27.0 ± 0%~(all equal)
DecodeCCF/FlowToken.TokensWithdrawn-432.0 ± 0%32.0 ± 0%~(all equal)
DecodeJSON/FlowFees.FeesDeducted-4142 ± 0%142 ± 0%~(all equal)
DecodeJSON/FlowFees.TokensWithdrawn-479.0 ± 0%79.0 ± 0%~(all equal)
DecodeJSON/FlowIDTableStaking.DelegatorRewardsPaid-4118 ± 0%118 ± 0%~(all equal)
DecodeJSON/FlowIDTableStaking.EpochTotalRewardsPaid-4179 ± 0%179 ± 0%~(all equal)
DecodeJSON/FlowIDTableStaking.NewWeeklyPayout-478.0 ± 0%78.0 ± 0%~(all equal)
DecodeJSON/FlowIDTableStaking.RewardsPaid-499.0 ± 0%99.0 ± 0%~(all equal)
DecodeJSON/FlowToken.TokensDeposited-4110 ± 0%110 ± 0%~(all equal)
DecodeJSON/FlowToken.TokensDeposited_with_nil_receiver-498.0 ± 0%98.0 ± 0%~(all equal)
DecodeJSON/FlowToken.TokensMinted-479.0 ± 0%79.0 ± 0%~(all equal)
DecodeJSON/FlowToken.TokensWithdrawn-4110 ± 0%110 ± 0%~(all equal)
pkg:github.com/onflow/cadence/interpreter goos:linux goarch:amd64
EMVAddressTransfer-429.0 ± 0%29.0 ± 0%~(all equal)
Emit-440.0k ± 0%40.0k ± 0%~(all equal)
pkg:github.com/onflow/cadence/encoding/ccf goos:linux goarch:amd64
EncodeBatchEventsCCF-41.00M ± 0%1.00M ± 0%~(p=1.000 n=1+1)
EncodeBatchEventsJSON-4902k ± 0%902k ± 0%~(p=1.000 n=1+1)
EncodeCCF/FlowFees.FeesDeducted-420.0 ± 0%20.0 ± 0%~(all equal)
EncodeCCF/FlowFees.TokensWithdrawn-420.0 ± 0%20.0 ± 0%~(all equal)
EncodeCCF/FlowIDTableStaking.DelegatorRewardsPaid-420.0 ± 0%20.0 ± 0%~(all equal)
EncodeCCF/FlowIDTableStaking.EpochTotalRewardsPaid-420.0 ± 0%20.0 ± 0%~(all equal)
EncodeCCF/FlowIDTableStaking.NewWeeklyPayout-420.0 ± 0%20.0 ± 0%~(all equal)
EncodeCCF/FlowIDTableStaking.RewardsPaid-420.0 ± 0%20.0 ± 0%~(all equal)
EncodeCCF/FlowToken.TokensDeposited-421.0 ± 0%21.0 ± 0%~(all equal)
EncodeCCF/FlowToken.TokensDeposited_with_nil_receiver-421.0 ± 0%21.0 ± 0%~(all equal)
EncodeCCF/FlowToken.TokensMinted-420.0 ± 0%20.0 ± 0%~(all equal)
EncodeCCF/FlowToken.TokensWithdrawn-421.0 ± 0%21.0 ± 0%~(all equal)
EncodeJSON/FlowFees.FeesDeducted-420.0 ± 0%20.0 ± 0%~(all equal)
EncodeJSON/FlowFees.TokensWithdrawn-413.0 ± 0%13.0 ± 0%~(all equal)
EncodeJSON/FlowIDTableStaking.DelegatorRewardsPaid-417.0 ± 0%17.0 ± 0%~(all equal)
EncodeJSON/FlowIDTableStaking.EpochTotalRewardsPaid-426.0 ± 0%26.0 ± 0%~(all equal)
EncodeJSON/FlowIDTableStaking.NewWeeklyPayout-413.0 ± 0%13.0 ± 0%~(all equal)
EncodeJSON/FlowIDTableStaking.RewardsPaid-416.0 ± 0%16.0 ± 0%~(all equal)
EncodeJSON/FlowToken.TokensDeposited-420.0 ± 0%20.0 ± 0%~(all equal)
EncodeJSON/FlowToken.TokensDeposited_with_nil_receiver-415.0 ± 0%15.0 ± 0%~(all equal)
EncodeJSON/FlowToken.TokensMinted-414.0 ± 0%14.0 ± 0%~(all equal)
EncodeJSON/FlowToken.TokensWithdrawn-419.0 ± 0%19.0 ± 0%~(all equal)
pkg:github.com/onflow/cadence/interpreter goos:linux goarch:amd64
EnumTransfer-413.0 ± 0%13.0 ± 0%~(all equal)
pkg:github.com/onflow/cadence/runtime goos:linux goarch:amd64
ExportType/composite_type-43.00 ± 0%3.00 ± 0%~(all equal)
ExportType/simple_type-40.00 0.00 ~(all equal)
pkg:github.com/onflow/cadence/bbq/vm/test goos:linux goarch:amd64
FTTransfer-41.58k ± 0%1.58k ± 0%~(all equal)
pkg:github.com/onflow/cadence/sema goos:linux goarch:amd64
FlowTokenContract-43.58k ± 0%3.58k ± 0%~(all equal)
pkg:github.com/onflow/cadence/interpreter goos:linux goarch:amd64
ImperativeFib-4176 ± 0%176 ± 0%~(all equal)
pkg:github.com/onflow/cadence/bbq/vm/test goos:linux goarch:amd64
ImperativeFib-4262 ± 0%262 ± 0%~(all equal)
ImperativeFibNewCompilerNewVM-4470 ± 0%470 ± 0%~(all equal)
ImperativeFibNewVM-4306 ± 0%306 ± 0%~(all equal)
pkg:github.com/onflow/cadence/interpreter goos:linux goarch:amd64
InterpretRecursionFib-417.7k ± 0%17.7k ± 0%~(all equal)
pkg:github.com/onflow/cadence/bbq/vm/test goos:linux goarch:amd64
InterpreterFTTransfer-41.11k ± 0%1.11k ± 0%~(all equal)
InterpreterImperativeFib-4175 ± 0%175 ± 0%~(all equal)
InterpreterNewStruct-4418 ± 0%418 ± 0%~(all equal)
MethodCall/concrete_type_method_call-4328 ± 0%328 ± 0%~(all equal)
MethodCall/interface_method_call-4488 ± 0%488 ± 0%~(all equal)
pkg:github.com/onflow/cadence/interpreter goos:linux goarch:amd64
NewInterpreter/new_interpreter-415.0 ± 0%15.0 ± 0%~(all equal)
NewInterpreter/new_sub-interpreter-44.00 ± 0%4.00 ± 0%~(all equal)
pkg:github.com/onflow/cadence/bbq/vm/test goos:linux goarch:amd64
NewResource-4919 ± 0%919 ± 0%~(all equal)
NewStruct-4364 ± 0%364 ± 0%~(all equal)
NewStructRaw-430.0 ± 0%30.0 ± 0%~(all equal)
pkg:github.com/onflow/cadence/sema goos:linux goarch:amd64
QualifiedIdentifierCreation/One_level-40.00 0.00 ~(all equal)
QualifiedIdentifierCreation/Three_levels-42.00 ± 0%2.00 ± 0%~(all equal)
pkg:github.com/onflow/cadence/bbq/vm/test goos:linux goarch:amd64
RecursionFib-413.4k ± 0%13.4k ± 0%~(all equal)
RuntimeFungibleTokenTransfer-44.28k ± 0%4.28k ± 0%~(all equal)
pkg:github.com/onflow/cadence/runtime goos:linux goarch:amd64
RuntimeFungibleTokenTransferInterpreter-43.27k ± 0%3.27k ± 0%~(all equal)
RuntimeFungibleTokenTransferVM-43.73k ± 0%3.73k ± 0%~(all equal)
RuntimeResourceDictionaryValues-436.7k ± 0%36.7k ± 0%~(all equal)
RuntimeResourceTracking-4129k ± 0%129k ± 0%~(p=1.000 n=1+1)
RuntimeScriptNoop-4114 ± 0%114 ± 0%~(all equal)
RuntimeVMInvokeContractImperativeFib-4424 ± 0%424 ± 0%~(all equal)
pkg:github.com/onflow/cadence/sema goos:linux goarch:amd64
SuperTypeInference/arrays-43.00 ± 0%3.00 ± 0%~(all equal)
SuperTypeInference/composites-40.00 0.00 ~(all equal)
SuperTypeInference/integers-40.00 0.00 ~(all equal)
pkg:github.com/onflow/cadence/interpreter goos:linux goarch:amd64
ValueIsSubtypeOfSemaType-41.00 ± 0%1.00 ± 0%~(all equal)
 

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.

1 participant