threshold-network / merkle-distribution

Threshold Network rewards generation and distribution
https://threshold.network
1 stars 6 forks source link

Solidity compile optimization #10

Closed theref closed 2 years ago

theref commented 2 years ago

No optimisation:

·------------------------------------------|----------------------------|-------------|-----------------------------·
|           Solc version: 0.8.9            ·  Optimizer enabled: false  ·  Runs: 200  ·  Block limit: 30000000 gas  │
···········································|····························|·············|······························
|  Methods                                                                                                          │
·························|·················|··············|·············|·············|···············|··············
|  Contract              ·  Method         ·  Min         ·  Max        ·  Avg        ·  # calls      ·  eur (avg)  │
·························|·················|··············|·············|·············|···············|··············
|  CumulativeMerkleDrop  ·  batchClaim     ·      333837  ·     346115  ·     339976  ·            2  ·          -  │
·························|·················|··············|·············|·············|···············|··············
|  CumulativeMerkleDrop  ·  claim          ·       63962  ·      99514  ·      94216  ·           91  ·          -  │
·························|·················|··············|·············|·············|···············|··············
|  CumulativeMerkleDrop  ·  setMerkleRoot  ·       30762  ·      47886  ·      41149  ·           33  ·          -  │
·························|·················|··············|·············|·············|···············|··············
|  TokenMock             ·  approve        ·       46833  ·      46869  ·      46846  ·           12  ·          -  │
·························|·················|··············|·············|·············|···············|··············
|  TokenMock             ·  mint           ·       54235  ·      71311  ·      70518  ·           22  ·          -  │
·························|·················|··············|·············|·············|···············|··············
|  Deployments                             ·                                          ·  % of limit   ·             │
···········································|··············|·············|·············|···············|··············
|  CumulativeMerkleDrop                    ·     1578407  ·    1578419  ·    1578418  ·        5.3 %  ·          -  │
···········································|··············|·············|·············|···············|··············
|  TokenMock                               ·           -  ·          -  ·    2411932  ·          8 %  ·          -  │
·------------------------------------------|--------------|-------------|-------------|---------------|-------------·

Runs 200

·------------------------------------------|---------------------------|-------------|-----------------------------·
|           Solc version: 0.8.9            ·  Optimizer enabled: true  ·  Runs: 200  ·  Block limit: 30000000 gas  │
···········································|···························|·············|······························
|  Methods                                                                                                         │
·························|·················|·············|·············|·············|···············|··············
|  Contract              ·  Method         ·  Min        ·  Max        ·  Avg        ·  # calls      ·  eur (avg)  │
·························|·················|·············|·············|·············|···············|··············
|  CumulativeMerkleDrop  ·  batchClaim     ·     321991  ·     328913  ·     325452  ·            2  ·          -  │
·························|·················|·············|·············|·············|···············|··············
|  CumulativeMerkleDrop  ·  claim          ·      60904  ·      96456  ·      91158  ·           91  ·          -  │
·························|·················|·············|·············|·············|···············|··············
|  CumulativeMerkleDrop  ·  setMerkleRoot  ·      30265  ·      47377  ·      40640  ·           33  ·          -  │
·························|·················|·············|·············|·············|···············|··············
|  TokenMock             ·  approve        ·      46239  ·      46275  ·      46252  ·           12  ·          -  │
·························|·················|·············|·············|·············|···············|··············
|  TokenMock             ·  mint           ·      53418  ·      70494  ·      69701  ·           22  ·          -  │
·························|·················|·············|·············|·············|···············|··············
|  Deployments                             ·                                         ·  % of limit   ·             │
···········································|·············|·············|·············|···············|··············
|  CumulativeMerkleDrop                    ·     878676  ·     878688  ·     878687  ·        2.9 %  ·          -  │
···········································|·············|·············|·············|···············|··············
|  TokenMock                               ·          -  ·          -  ·    1271333  ·        4.2 %  ·          -  │
·------------------------------------------|-------------|-------------|-------------|---------------|-------------·

Runs 2000

·------------------------------------------|---------------------------|--------------|-----------------------------·
|           Solc version: 0.8.9            ·  Optimizer enabled: true  ·  Runs: 2000  ·  Block limit: 30000000 gas  │
···········································|···························|··············|······························
|  Methods                                                                                                          │
·························|·················|·············|·············|··············|···············|··············
|  Contract              ·  Method         ·  Min        ·  Max        ·  Avg         ·  # calls      ·  eur (avg)  │
·························|·················|·············|·············|··············|···············|··············
|  CumulativeMerkleDrop  ·  batchClaim     ·     321657  ·     328579  ·      325118  ·            2  ·          -  │
·························|·················|·············|·············|··············|···············|··············
|  CumulativeMerkleDrop  ·  claim          ·      60884  ·      96436  ·       91138  ·           91  ·          -  │
·························|·················|·············|·············|··············|···············|··············
|  CumulativeMerkleDrop  ·  setMerkleRoot  ·      30276  ·      47400  ·       40661  ·           33  ·          -  │
·························|·················|·············|·············|··············|···············|··············
|  TokenMock             ·  approve        ·      46262  ·      46298  ·       46275  ·           12  ·          -  │
·························|·················|·············|·············|··············|···············|··············
|  TokenMock             ·  mint           ·      53441  ·      70517  ·       69724  ·           22  ·          -  │
·························|·················|·············|·············|··············|···············|··············
|  Deployments                             ·                                          ·  % of limit   ·             │
···········································|·············|·············|··············|···············|··············
|  CumulativeMerkleDrop                    ·     992176  ·     992188  ·      992187  ·        3.3 %  ·          -  │
···········································|·············|·············|··············|···············|··············
|  TokenMock                               ·          -  ·          -  ·     1347162  ·        4.5 %  ·          -  │
·------------------------------------------|-------------|-------------|--------------|---------------|-------------·

Runs 20K


·------------------------------------------|---------------------------|---------------|-----------------------------·
|           Solc version: 0.8.9            ·  Optimizer enabled: true  ·  Runs: 20000  ·  Block limit: 30000000 gas  │
···········································|···························|···············|······························
|  Methods                                                                                                           │
·························|·················|·············|·············|···············|···············|··············
|  Contract              ·  Method         ·  Min        ·  Max        ·  Avg          ·  # calls      ·  eur (avg)  │
·························|·················|·············|·············|···············|···············|··············
|  CumulativeMerkleDrop  ·  batchClaim     ·     317704  ·     329982  ·       323843  ·            2  ·          -  │
·························|·················|·············|·············|···············|···············|··············
|  CumulativeMerkleDrop  ·  claim          ·      60629  ·      96181  ·        90883  ·           91  ·          -  │
·························|·················|·············|·············|···············|···············|··············
|  CumulativeMerkleDrop  ·  setMerkleRoot  ·      30276  ·      47388  ·        40650  ·           33  ·          -  │
·························|·················|·············|·············|···············|···············|··············
|  TokenMock             ·  approve        ·      46214  ·      46250  ·        46227  ·           12  ·          -  │
·························|·················|·············|·············|···············|···············|··············
|  TokenMock             ·  mint           ·      53381  ·      70457  ·        69664  ·           22  ·          -  │
·························|·················|·············|·············|···············|···············|··············
|  Deployments                             ·                                           ·  % of limit   ·             │
···········································|·············|·············|···············|···············|··············
|  CumulativeMerkleDrop                    ·    1111825  ·    1111837  ·      1111836  ·        3.7 %  ·          -  │
···········································|·············|·············|···············|···············|··············
|  TokenMock                               ·          -  ·          -  ·      1597991  ·        5.3 %  ·          -  │
·------------------------------------------|-------------|-------------|---------------|---------------|-------------·