Skip to content
This repository has been archived by the owner on Nov 15, 2023. It is now read-only.

Optimize calls for utility and lottery #9339

Closed
wants to merge 10 commits into from
Closed

Conversation

gui1117
Copy link
Contributor

@gui1117 gui1117 commented Jul 13, 2021

This PR changes for call argument from Vec<Call> to Vec<Box<Call>>

@github-actions github-actions bot added the A0-please_review Pull request needs code review. label Jul 13, 2021
@gui1117 gui1117 added B7-runtimenoteworthy C1-low PR touches the given topic and has a low impact on builders. D9-needsaudit 👮 PR contains changes to fund-managing logic that should be properly reviewed and externally audited labels Jul 13, 2021
@gui1117
Copy link
Contributor Author

gui1117 commented Jul 13, 2021

/benchmark runtime pallet pallet_utility

@parity-benchapp
Copy link

parity-benchapp bot commented Jul 13, 2021

Finished benchmark for branch: gui-optimize-calls

Benchmark: Benchmark Runtime Pallet

cargo run --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_utility --extrinsic="*" --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/utility/src/weights.rs --template=./.maintain/frame-weight-template.hbs

Results

Pallet: "pallet_utility", Extrinsic: "batch", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 18.11
+ c 0.459
µs

Reads = 0 + (0 * c)
Writes = 0 + (0 * c)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
c mean µs sigma µs %
0 17.46 0.043 0.2%
20 27.16 0.058 0.2%
40 36.43 0.051 0.1%
60 45.6 0.037 0.0%
80 54.83 0.03 0.0%
100 63.99 0.058 0.0%
120 73.23 0.066 0.0%
140 82.37 0.047 0.0%
160 91.63 0.03 0.0%
180 100.8 0.053 0.0%
200 109.9 0.075 0.0%
220 119.1 0.076 0.0%
240 128.4 0.066 0.0%
260 137.6 0.069 0.0%
280 146.7 0.033 0.0%
300 156 0.042 0.0%
320 165.1 0.085 0.0%
340 174.3 0.079 0.0%
360 185 4.089 2.2%
380 192.7 0.079 0.0%
400 201.9 0.061 0.0%
420 211.1 0.088 0.0%
440 220.3 0.051 0.0%
460 229.4 0.065 0.0%
480 238.6 0.085 0.0%
500 247.9 0.068 0.0%
520 257 0.118 0.0%
540 266.2 0.048 0.0%
560 275.3 0.049 0.0%
580 284.4 0.111 0.0%
600 293.7 0.06 0.0%
620 303.1 0.773 0.2%
640 312.5 0.688 0.2%
660 321 0.042 0.0%
680 330.3 0.068 0.0%
700 339.5 0.087 0.0%
720 348.7 0.11 0.0%
740 357.8 0.056 0.0%
760 367.1 0.102 0.0%
780 376.3 0.122 0.0%
800 385.5 0.141 0.0%
820 394.6 0.119 0.0%
840 403.9 0.126 0.0%
860 412.9 0.111 0.0%
880 422.3 0.083 0.0%
900 431.4 0.097 0.0%
920 440.6 0.2 0.0%
940 449.7 0.128 0.0%
960 461.4 4.982 1.0%
980 478.2 10.25 2.1%
1000 479 4.424 0.9%

Quality and confidence:
param error
c 0

Model:
Time ~= 17.67
+ c 0.461
µs

Reads = 0 + (0 * c)
Writes = 0 + (0 * c)
Pallet: "pallet_utility", Extrinsic: "as_derivative", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 3.693
µs

Reads = 0
Writes = 0
Min Squares Analysis

-- Extrinsic Time --

Model:
Time ~= 3.693
µs

Reads = 0
Writes = 0
Pallet: "pallet_utility", Extrinsic: "batch_all", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 19.18
+ c 0.886
µs

Reads = 0 + (0 * c)
Writes = 0 + (0 * c)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
c mean µs sigma µs %
0 18.58 0.051 0.2%
20 37.29 0.167 0.4%
40 56.04 0.073 0.1%
60 72.43 0.033 0.0%
80 90.22 0.041 0.0%
100 108.1 0.988 0.9%
120 125.5 0.034 0.0%
140 143.2 0.042 0.0%
160 160.9 0.041 0.0%
180 183.2 2.389 1.3%
200 203.2 0.112 0.0%
220 221.6 0.073 0.0%
240 236.6 4.027 1.7%
260 249.3 0.09 0.0%
280 267 0.093 0.0%
300 289.8 5.04 1.7%
320 313.3 0.193 0.0%
340 325.8 5.789 1.7%
360 337.8 0.116 0.0%
380 355.2 0.121 0.0%
400 373.1 0.166 0.0%
420 398.2 6.933 1.7%
440 408.3 0.082 0.0%
460 426 0.114 0.0%
480 443.6 0.118 0.0%
500 464.5 5.815 1.2%
520 497.7 0.237 0.0%
540 510 8.389 1.6%
560 514.6 0.073 0.0%
580 532.3 0.235 0.0%
600 550.3 0.843 0.1%
620 567.7 0.184 0.0%
640 590 9.647 1.6%
660 606.4 5.505 0.9%
680 620.9 0.353 0.0%
700 641.7 6.965 1.0%
720 671.6 11.44 1.7%
740 680.5 8.404 1.2%
760 722.2 5.024 0.6%
780 711 0.282 0.0%
800 729 0.875 0.1%
820 746.1 0.225 0.0%
840 764 0.209 0.0%
860 787.7 10.92 1.3%
880 799.9 0.802 0.1%
900 817.2 0.452 0.0%
920 836.9 3.805 0.4%
940 853.4 0.923 0.1%
960 875.2 9.771 1.1%
980 888.8 1.155 0.1%
1000 905.9 0.508 0.0%

Quality and confidence:
param error
c 0.001

Model:
Time ~= 21
+ c 0.889
µs

Reads = 0 + (0 * c)
Writes = 0 + (0 * c)

@gui1117
Copy link
Contributor Author

gui1117 commented Jul 13, 2021

/benchmark runtime pallet pallet_lottery

…/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_utility --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/utility/src/weights.rs --template=./.maintain/frame-weight-template.hbs
@parity-benchapp
Copy link

parity-benchapp bot commented Jul 13, 2021

Finished benchmark for branch: gui-optimize-calls

Benchmark: Benchmark Runtime Pallet

cargo run --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_lottery --extrinsic="*" --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/lottery/src/weights.rs --template=./.maintain/frame-weight-template.hbs

Results

Pallet: "pallet_lottery", Extrinsic: "buy_ticket", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 89.01
µs

Reads = 6
Writes = 4
Min Squares Analysis

-- Extrinsic Time --

Model:
Time ~= 89.01
µs

Reads = 6
Writes = 4
Pallet: "pallet_lottery", Extrinsic: "set_calls", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 19.72
+ n 0.372
µs

Reads = 0 + (0 * n)
Writes = 1 + (0 * n)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
n mean µs sigma µs %
0 19.2 0.034 0.1%
1 20.32 0.111 0.5%
2 20.54 0.041 0.1%
3 20.85 0.054 0.2%
4 21.3 0.081 0.3%
5 21.59 0.047 0.2%
6 21.95 0.04 0.1%
7 22.34 0.048 0.2%
8 22.67 0.04 0.1%
9 23.04 0.051 0.2%
10 23.47 0.034 0.1%

Quality and confidence:
param error
n 0.005

Model:
Time ~= 19.65
+ n 0.384
µs

Reads = 0 + (0 * n)
Writes = 1 + (0 * n)
Pallet: "pallet_lottery", Extrinsic: "start_lottery", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 72.31
µs

Reads = 3
Writes = 3
Min Squares Analysis

-- Extrinsic Time --

Model:
Time ~= 72.31
µs

Reads = 3
Writes = 3
Pallet: "pallet_lottery", Extrinsic: "stop_repeat", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 9.068
µs

Reads = 1
Writes = 1
Min Squares Analysis

-- Extrinsic Time --

Model:
Time ~= 9.068
µs

Reads = 1
Writes = 1
Pallet: "pallet_lottery", Extrinsic: "on_initialize_end", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 140.8
µs

Reads = 6
Writes = 4
Min Squares Analysis

-- Extrinsic Time --

Model:
Time ~= 140.8
µs

Reads = 6
Writes = 4
Pallet: "pallet_lottery", Extrinsic: "on_initialize_repeat", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 146.7
µs

Reads = 7
Writes = 5
Min Squares Analysis

-- Extrinsic Time --

Model:
Time ~= 146.7
µs

Reads = 7
Writes = 5

Parity Bot and others added 2 commits July 13, 2021 16:55
…/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_lottery --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/lottery/src/weights.rs --template=./.maintain/frame-weight-template.hbs
@gui1117 gui1117 requested a review from athei as a code owner July 13, 2021 17:08
@shawntabrizi
Copy link
Member

@thiolliere we can't really trust the output of the benchmarking bot right now as @joao-paulo-parity is working to remove some of the overhead that snuck in recently: paritytech/bench-bot#47

My question is also: would this benchmark be able to capture the impact of this change?

@gui1117
Copy link
Contributor Author

gui1117 commented Jul 13, 2021

My question is also: would this benchmark be able to capture the impact of this change?

No it didn't, but I changed them in 5a93791
Now the benchmark does decode the call, so it capture the cost of allocating each individual calls when decoding.

@shawntabrizi
Copy link
Member

shawntabrizi commented Jul 13, 2021

@thiolliere do you think we should add this by default into the whole benchmarking pipeline?

@gui1117
Copy link
Contributor Author

gui1117 commented Jul 13, 2021

@thiolliere do you think we should add this by default into the whole benchmarking pipeline?

I think it is relevant, also it doesn't look too difficult to do: #9343

Though most manual benchmark don't do that

@shawntabrizi
Copy link
Member

Yeah manual benchmarks, we will just need to add some documentation 🤷

@paritytech paritytech deleted a comment from parity-benchapp bot Jul 13, 2021
@paritytech paritytech deleted a comment from parity-benchapp bot Jul 13, 2021
@paritytech paritytech deleted a comment from parity-benchapp bot Jul 13, 2021
@paritytech paritytech deleted a comment from parity-benchapp bot Jul 13, 2021
@shawntabrizi
Copy link
Member

/benchmark runtime pallet pallet_lottery

@parity-benchapp
Copy link

parity-benchapp bot commented Jul 13, 2021

Finished benchmark for branch: gui-optimize-calls

Benchmark: Benchmark Runtime Pallet

cargo run --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_lottery --extrinsic="*" --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/lottery/src/weights.rs --template=./.maintain/frame-weight-template.hbs

Results

Pallet: "pallet_lottery", Extrinsic: "buy_ticket", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 72.7
µs

Reads = 6
Writes = 4
Min Squares Analysis

-- Extrinsic Time --

Model:
Time ~= 72.7
µs

Reads = 6
Writes = 4
Pallet: "pallet_lottery", Extrinsic: "set_calls", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 15.64
+ n 0.773
µs

Reads = 0 + (0 * n)
Writes = 1 + (0 * n)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
n mean µs sigma µs %
0 15.07 0.047 0.3%
1 16.41 0.051 0.3%
2 17.34 0.034 0.1%
3 17.97 0.06 0.3%
4 18.86 0.028 0.1%
5 19.59 0.029 0.1%
6 20.27 0.058 0.2%
7 20.91 0.063 0.3%
8 21.75 0.077 0.3%
9 22.57 0.068 0.3%
10 23.34 0.093 0.3%

Quality and confidence:
param error
n 0.005

Model:
Time ~= 15.53
+ n 0.786
µs

Reads = 0 + (0 * n)
Writes = 1 + (0 * n)
Pallet: "pallet_lottery", Extrinsic: "start_lottery", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 57.93
µs

Reads = 3
Writes = 3
Min Squares Analysis

-- Extrinsic Time --

Model:
Time ~= 57.93
µs

Reads = 3
Writes = 3
Pallet: "pallet_lottery", Extrinsic: "stop_repeat", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 7.468
µs

Reads = 1
Writes = 1
Min Squares Analysis

-- Extrinsic Time --

Model:
Time ~= 7.468
µs

Reads = 1
Writes = 1
Pallet: "pallet_lottery", Extrinsic: "on_initialize_end", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 114.8
µs

Reads = 6
Writes = 4
Min Squares Analysis

-- Extrinsic Time --

Model:
Time ~= 114.8
µs

Reads = 6
Writes = 4
Pallet: "pallet_lottery", Extrinsic: "on_initialize_repeat", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 119.7
µs

Reads = 7
Writes = 5
Min Squares Analysis

-- Extrinsic Time --

Model:
Time ~= 119.7
µs

Reads = 7
Writes = 5

@paritytech paritytech deleted a comment from parity-benchapp bot Jul 13, 2021
…/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_lottery --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/lottery/src/weights.rs --template=./.maintain/frame-weight-template.hbs
@shawntabrizi
Copy link
Member

/benchmark runtime pallet pallet_utility

@parity-benchapp
Copy link

parity-benchapp bot commented Jul 13, 2021

Finished benchmark for branch: gui-optimize-calls

Benchmark: Benchmark Runtime Pallet

cargo run --release --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_utility --extrinsic="*" --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/utility/src/weights.rs --template=./.maintain/frame-weight-template.hbs

Results

Pallet: "pallet_utility", Extrinsic: "batch", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 15.22
+ c 0.833
µs

Reads = 0 + (0 * c)
Writes = 0 + (0 * c)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
c mean µs sigma µs %
0 14.01 0.141 1.0%
20 31.74 0.037 0.1%
40 48.44 0.065 0.1%
60 65.35 0.059 0.0%
80 82.04 0.065 0.0%
100 98.47 0.052 0.0%
120 115.2 0.099 0.0%
140 131.8 0.088 0.0%
160 148.4 0.082 0.0%
180 165.4 0.095 0.0%
200 182.1 0.071 0.0%
220 198.7 0.061 0.0%
240 215.5 0.094 0.0%
260 232 0.083 0.0%
280 248.9 0.181 0.0%
300 265.5 0.136 0.0%
320 282.2 0.109 0.0%
340 298.8 0.126 0.0%
360 315.1 0.094 0.0%
380 331.9 0.164 0.0%
400 350.4 3.837 1.0%
420 365.3 0.158 0.0%
440 382 0.087 0.0%
460 398.5 0.068 0.0%
480 415.3 0.124 0.0%
500 431.9 0.113 0.0%
520 448.5 0.104 0.0%
540 464.9 0.201 0.0%
560 490.1 12.68 2.5%
580 498.4 0.162 0.0%
600 515 0.142 0.0%
620 531.8 0.192 0.0%
640 548.3 0.119 0.0%
660 564.9 0.164 0.0%
680 582.1 0.933 0.1%
700 599.7 3.71 0.6%
720 614.5 0.116 0.0%
740 633.9 8.329 1.3%
760 648 0.732 0.1%
780 664.4 0.187 0.0%
800 685.7 7.068 1.0%
820 699.9 0.188 0.0%
840 716.4 0.669 0.0%
860 733.2 0.691 0.0%
880 749.5 1.02 0.1%
900 770.4 8.955 1.1%
920 783.2 0.248 0.0%
940 799.5 1.03 0.1%
960 816.4 0.122 0.0%
980 833 0.643 0.0%
1000 852.9 8.096 0.9%

Quality and confidence:
param error
c 0

Model:
Time ~= 14.8
+ c 0.836
µs

Reads = 0 + (0 * c)
Writes = 0 + (0 * c)
Pallet: "pallet_utility", Extrinsic: "as_derivative", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 3.249
µs

Reads = 0
Writes = 0
Min Squares Analysis

-- Extrinsic Time --

Model:
Time ~= 3.249
µs

Reads = 0
Writes = 0
Pallet: "pallet_utility", Extrinsic: "batch_all", Lowest values: [], Highest values: [], Steps: [50], Repeat: 20
Median Slopes Analysis

-- Extrinsic Time --

Model:
Time ~= 15.58
+ c 1.222
µs

Reads = 0 + (0 * c)
Writes = 0 + (0 * c)
Min Squares Analysis

-- Extrinsic Time --

Data points distribution:
c mean µs sigma µs %
0 14.85 0.09 0.6%
20 40.38 0.052 0.1%
40 64.9 0.056 0.0%
60 89.17 0.043 0.0%
80 113.6 0.094 0.0%
100 137.9 0.066 0.0%
120 162.3 0.075 0.0%
140 186.7 0.11 0.0%
160 211 0.078 0.0%
180 235.2 0.051 0.0%
200 259.6 0.113 0.0%
220 283.9 0.116 0.0%
240 308.2 0.091 0.0%
260 334.4 4.275 1.2%
280 357.4 1.044 0.2%
300 381.4 0.068 0.0%
320 405.8 0.118 0.0%
340 429.9 0.126 0.0%
360 454.7 0.086 0.0%
380 479.1 0.084 0.0%
400 503.9 0.819 0.1%
420 527.8 0.105 0.0%
440 556.2 9.098 1.6%
460 576.7 0.179 0.0%
480 601.2 0.775 0.1%
500 625.3 0.082 0.0%
520 649.7 0.179 0.0%
540 679.3 8.232 1.2%
560 701 0.345 0.0%
580 725.4 0.165 0.0%
600 749.7 0.173 0.0%
620 773.9 0.63 0.0%
640 799.8 3.719 0.4%
660 831.9 11.23 1.3%
680 850.7 5.915 0.6%
700 871.8 1.364 0.1%
720 894.2 1.341 0.1%
740 927.6 11.51 1.2%
760 948.1 6.573 0.6%
780 969 0.858 0.0%
800 993.4 0.617 0.0%
820 1021 8.947 0.8%
840 1042 0.751 0.0%
860 1066 0.248 0.0%
880 1113 14.89 1.3%
900 1131 14.05 1.2%
920 1142 8.109 0.7%
940 1164 0.723 0.0%
960 1191 8.936 0.7%
980 1213 1.004 0.0%
1000 1237 1.531 0.1%

Quality and confidence:
param error
c 0

Model:
Time ~= 14.24
+ c 1.228
µs

Reads = 0 + (0 * c)
Writes = 0 + (0 * c)

// Standard Error: 5_000
.saturating_add((301_000 as Weight).saturating_mul(n as Weight))
.saturating_add((786_000 as Weight).saturating_mul(n as Weight))
Copy link
Member

Choose a reason for hiding this comment

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

This seems to be the difference with encoding? Double the weight per call

Copy link
Contributor Author

@gui1117 gui1117 Jul 14, 2021

Choose a reason for hiding this comment

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

we can't say for sure until we compare with the benchmark with the decoding but without the Box, but anyway this seems ok to me

comparing to the benchmark result in this PR #9343 it is indeed from the difference in decoding.

…/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_utility --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/utility/src/weights.rs --template=./.maintain/frame-weight-template.hbs
Copy link
Member

@shawntabrizi shawntabrizi left a comment

Choose a reason for hiding this comment

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

Need to bump TX version?

Copy link
Contributor

@emostov emostov left a comment

Choose a reason for hiding this comment

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

Code lgtm

Although I can't really speak too the merit of the performance trade offs of this change

@@ -149,7 +149,7 @@ pub mod pallet {
})]
pub fn batch(
origin: OriginFor<T>,
calls: Vec<<T as Config>::Call>,
calls: Vec<Box<<T as Config>::Call>>,
Copy link
Member

Choose a reason for hiding this comment

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

This doesn't make any sense. When you use a Vec, these values are already "boxed". What you want to achieve here?

Copy link
Contributor Author

@gui1117 gui1117 Jul 19, 2021

Choose a reason for hiding this comment

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

inside a vec, the array of element is boxed, not each element individually.
because Call is around 400B, for a Vec<Call> of capacity 10 allocate an array of size 10*400 B.
whereas a Vec<Box<Call>> of capacity 10 allocate an array of size 10*size_of<usize>() B and also allocate 10 individual calls.
This way the maximum length of an individual allocation is minimized.

Copy link
Member

Choose a reason for hiding this comment

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

Yeah that is right, but what is the reason for doing this?

We will not have a call vec with 83886 calls anyway?

@gui1117
Copy link
Contributor Author

gui1117 commented Jul 19, 2021

let's do in another better way

@gui1117 gui1117 closed this Jul 19, 2021
@gui1117 gui1117 deleted the gui-optimize-calls branch July 19, 2021 08:32
@shawntabrizi shawntabrizi removed the D9-needsaudit 👮 PR contains changes to fund-managing logic that should be properly reviewed and externally audited label Feb 15, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
A0-please_review Pull request needs code review. C1-low PR touches the given topic and has a low impact on builders.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants