Skip to content

Commit

Permalink
update benchmarks results in readme, add arguments benchmark
Browse files Browse the repository at this point in the history
  • Loading branch information
cdump committed Dec 13, 2023
1 parent e06c587 commit b133f65
Showing 1 changed file with 77 additions and 29 deletions.
106 changes: 77 additions & 29 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,84 +50,132 @@ See [examples](./examples) for more

## Benchmark

### function selectors
<i>FP/FN</i> - [False Positive/False Negative](https://en.wikipedia.org/wiki/False_positives_and_false_negatives) errors; smaller is better

<table>
<tr>
<td>Dataset</td>
<td></td>
<td><a href="benchmark/providers/simple/"><b><i>simple</i></b></a></td>
<td><a href="benchmark/providers/evmole-js/"><b><i>evmole-js</i></b></a> (<a href="benchmark/providers/evmole-py/"><b><i>py</i></b></a>)</td>
<td><a href="benchmark/providers/whatsabi/"><b><i>whatsabi</i></b></a></td>
<td><a href="benchmark/providers/evm-hound-rs/"><b><i>evm-hound-rs</i></b></a></td>
<td><a href="benchmark/providers/evmole-js/"><b><i>evmole-js</i></b></a> (<a href="benchmark/providers/evmole-py/"><b><i>py</i></b></a>)</td>
<td><a href="benchmark/providers/simple/"><b><i>simple</i></b></a></td>
</tr>
<tr>
<td rowspan="3"><i><b>largest1k</b><br>1000 contracts<br>24427 functions</i></td>
<td rowspan="3"><i><b>largest1k</b><br>1000 contracts<br>24427 functions</i></td>
<td><i>FP/FN contracts:</i></td>
<td>95 / 9</td>
<td>1 / 0 :1st_place_medal:</td>
<td>38 / 8</td>
<td>75 / 40</td>
<td>1 / 0 :1st_place_medal:</td>
<td>95 / 9</td>
</tr>
<tr>
<td><i>FP/FN functions:</i></td>
<td>749 / 12</td>
<td>192 / 0 :2nd_place_medal: :1st_place_medal:</td>
<td>38 / 8 :1st_place_medal: :2nd_place_medal:</td>
<td>720 / 191</td>
<td>192 / 0 :2nd_place_medal: :1st_place_medal:</td>
<td>749 / 12</td>
</tr>
<tr>
<td><i>Time:</i></td>
<td>1.97s</td>
<td>3.8s</td>
<td>1.34s</td>
<td>2.03s (1.99s)</td>
<td>1.6s (1.74s)</td>
<td>3.54s</td>
<td>1.1s</td>
<td>1.85s</td>
</tr>
<tr><td colspan="7"></td></tr>
<tr>
<td rowspan="3"><i><b>random50k</b><br>50000 contracts<br>1171102 functions</i></td>
<td rowspan="3"><i><b>random50k</b><br>50000 contracts<br>1171102 functions</i></td>
<td><i>FP/FN contracts:</i></td>
<td>4136 / 77</td>
<td>1 / 9 :1st_place_medal:</td>
<td>251 / 31</td>
<td>693 / 2903</td>
<td>1 / 9 :1st_place_medal:</td>
<td>4136 / 77</td>
</tr>
<tr>
<td><i>FP/FN functions:</i></td>
<td>14652 / 96</td>
<td>3 / 10 :1st_place_medal:</td>
<td>261 / 32</td>
<td>10798 / 3538</td>
<td>3 / 10 :1st_place_medal:</td>
<td>14652 / 96</td>
</tr>
<tr>
<td><i>Time:</i></td>
<td>35.84s</td>
<td>69.91s</td>
<td>11.97s</td>
<td>25.02s (33.62s)</td>
<td>18.81s (32.27s)</td>
<td>67.13s</td>
<td>11.95s</td>
<td>34.39s</td>
</tr>
<tr><td colspan="7"></td></tr>
<tr>
<td rowspan="3"><i><b>vyper</b><br>780 contracts<br>21244 functions</i></td>
<td rowspan="3"><i><b>vyper</b><br>780 contracts<br>21244 functions</i></td>
<td><i>FP/FN contracts:</i></td>
<td>185 / 480</td>
<td>0 / 0 :1st_place_medal:</td>
<td>178 / 780</td>
<td>19 / 300</td>
<td>0 / 0 :1st_place_medal:</td>
<td>185 / 480</td>
</tr>
<tr>
<td><i>FP/FN functions:</i></td>
<td>197 / 12971</td>
<td>0 / 0 :1st_place_medal:</td>
<td>181 / 21244</td>
<td>19 / 8273</td>
<td>0 / 0 :1st_place_medal:</td>
<td>197 / 12971</td>
</tr>
<tr>
<td><i>Time:</i></td>
<td>1.42s (1.28s)</td>
<td>2.39s</td>
<td>0.97s</td>
<td>1.34s</td>
</tr>
</table>

### function arguments
<i>errors</i> - when at least 1 argument is incorrect: `(uint256,string)` != `(uint256,bytes)`; smaller is better

<table>
<tr>
<td>Dataset</td>
<td></td>
<td><a href="benchmark/providers/evmole-js/"><b><i>evmole-js</i></b></a> (<a href="benchmark/providers/evmole-py/"><b><i>py</i></b></a>)</td>
<td><a href="benchmark/providers/simple/"><b><i>simple</i></b></a></td>
</tr>
<tr>
<td rowspan="2"><i><b>largest1k</b><br>1000 contracts<br>24427 functions</i></td>
<td><i>errors:</i></td>
<td>15.1%, 3677 :1st_place_medal:</td>
<td>58.3%, 14242</td>
</tr>
<tr>
<td><i>Time:</i></td>
<td>6.84s (13.02s)</td>
<td>1.17s</td>
</tr>
<tr><td colspan="5"></td></tr>
<tr>
<td rowspan="2"><i><b>random50k</b><br>50000 contracts<br>1171102 functions</i></td>
<td><i>errors:</i></td>
<td>5.4%, 63774 :1st_place_medal:</td>
<td>54.9%, 643213</td>
</tr>
<tr>
<td><i>Time:</i></td>
<td>185.03s (402.58s)</td>
<td>8.76s</td>
</tr>
<tr><td colspan="5"></td></tr>
<tr>
<td rowspan="2"><i><b>vyper</b><br>780 contracts<br>21244 functions</i></td>
<td><i>errors:</i></td>
<td>52.3%, 11103 :1st_place_medal:</td>
<td>56.8%, 12077</td>
</tr>
<tr>
<td><i>Time:</i></td>
<td>1.62s</td>
<td>2.55s</td>
<td>1.29s</td>
<td>1.44s (1.6s)</td>
<td>7.77s (16.05s)</td>
<td>0.98s</td>
</tr>
</table>

Expand Down

0 comments on commit b133f65

Please sign in to comment.