Skip to content

Commit

Permalink
update benchmark results
Browse files Browse the repository at this point in the history
  • Loading branch information
cdump committed Sep 26, 2024
1 parent d4c404c commit a4ddacb
Show file tree
Hide file tree
Showing 4 changed files with 39 additions and 39 deletions.
72 changes: 36 additions & 36 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -135,9 +135,9 @@ $ cast selectors --resolve $(cast code 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc
</tr>
<tr>
<td><i>Time</i></td>
<td>0.4s · 0.8s · 0.6s</td>
<td>2.9s</td>
<td>38s<sup>(*)</sup></td>
<td>0.5s · 0.7s · 0.6s</td>
<td>3.2s</td>
<td>44s<sup>(*)</sup></td>
<td>0.5s</td>
<td>341s<sup>(*)</sup></td>
<td>1.8s</td>
Expand All @@ -157,7 +157,7 @@ $ cast selectors --resolve $(cast code 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc
<td><i>FN <sub>addrs</sub></i></td>
<td>9 🥇</td>
<td>11</td>
<td>36</td>
<td>10</td>
<td>2903</td>
<td>4708</td>
<td>77</td>
Expand All @@ -175,19 +175,19 @@ $ cast selectors --resolve $(cast code 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc
<td><i>FN <sub>funcs</sub></i></td>
<td>10 🥇</td>
<td>12</td>
<td>587</td>
<td>11</td>
<td>3538</td>
<td>6098</td>
<td>96</td>
</tr>
<tr>
<td><i>Time</i></td>
<td>4.5s · 12s · 10s</td>
<td>49s</td>
<td>1427s<sup>(*)</sup></td>
<td>5.8s</td>
<td>4.5s · 8.5s · 7.8s</td>
<td>54s</td>
<td>2458s<sup>(*)</sup></td>
<td>6.1s</td>
<td>8576s<sup>(*)</sup></td>
<td>49s</td>
<td>46s</td>
</tr>
<tr><td colspan="8"></td></tr>
<tr>
Expand Down Expand Up @@ -229,9 +229,9 @@ $ cast selectors --resolve $(cast code 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc
</tr>
<tr>
<td><i>Time</i></td>
<td>0.4s · 0.7s · 0.5s</td>
<td>2.2s</td>
<td>60s<sup>(*)</sup></td>
<td>0.4s · 0.6s · 0.4s</td>
<td>2.4s</td>
<td>43s<sup>(*)</sup></td>
<td>0.4s</td>
<td>27s<sup>(*)</sup></td>
<td>1.1s</td>
Expand All @@ -252,43 +252,43 @@ $ cast selectors --resolve $(cast code 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc
<tr>
<td rowspan="2"><b>largest1k</b><br><sub>24427<br>functions</sub></td>
<td><i>Errors</i></td>
<td>14.0% 🥇<br><sub>3417</sub></td>
<td>14.0% 🥇<br><sub>3410</sub></td>
<td>31.1%<br><sub>7593</sub></td>
<td>58.3%<br><sub>14242</sub></td>
</tr>
<tr>
<td><i>Time</i></td>
<td>1.0s · 8.3s · 3.5s</td>
<td>1.1s · 4.8s · 1.4s</td>
<td>342s<sup>(*)</sup></td>
<td>0.7s</td>
</tr>
<tr><td colspan="5"></td></tr>
<tr>
<td rowspan="2"><b>random50k</b><br><sub>1171102<br>functions</sub></td>
<td><i>Errors</i></td>
<td>4.5% 🥇<br><sub>52777</sub></td>
<td>4.5% 🥇<br><sub>52662</sub></td>
<td>19.4%<br><sub>227612</sub></td>
<td>54.9%<br><sub>643213</sub></td>
</tr>
<tr>
<td><i>Time</i></td>
<td>23s · 263s · 104s</td>
<td>25s · 127 · 32</td>
<td>8544s<sup>(*)</sup></td>
<td>9.7s</td>
<td>9.5s</td>
</tr>
<tr><td colspan="5"></td></tr>
<tr>
<td rowspan="2"><b>vyper</b><br><sub>21244<br>functions</sub></td>
<td><i>Errors</i></td>
<td>49.6% 🥇<br><sub>10544</sub></td>
<td>48.5% 🥇<br><sub>10300</sub></td>
<td>100.0%<br><sub>21244</sub></td>
<td>56.8%<br><sub>12077</sub></td>
</tr>
<tr>
<td><i>Time</i></td>
<td>0.7s · 5.2s · 2.2s</td>
<td>0.8s · 3.0s · 1.0s</td>
<td>28s<sup>(*)</sup></td>
<td>0.5s</td>
<td>0.6s</td>
</tr>
</table>

Expand Down Expand Up @@ -319,17 +319,17 @@ $ cast selectors --resolve $(cast code 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc
</tr>
<tr>
<td><i>Errors strict</i></td>
<td>19.3% 🥇<br><sub>4718</sub></td>
<td>18.7% 🥇<br><sub>4558</sub></td>
<td>79.3%<br><sub>19370</sub></td>
<td>59.0%<br><sub>14417</sub></td>
<td>54.9%<br><sub>13403</sub></td>
<td>60.9%<br><sub>14864</sub></td>
</tr>
<tr>
<td><i>Time</i></td>
<td>7.9s · 17s · 10s</td>
<td>3.7s</td>
<td>37s<sup>(*)</sup></td>
<td>9.5s · 19s · 9.4s</td>
<td>3.8s</td>
<td>46s<sup>(*)</sup></td>
<td>339s<sup>(*)</sup></td>
<td>0.7s</td>
</tr>
Expand All @@ -339,23 +339,23 @@ $ cast selectors --resolve $(cast code 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc
<td><i>Errors</i></td>
<td>0.0% 🥇<br><sub>35</sub></td>
<td>30.2%<br><sub>351060</sub></td>
<td>0.3%<br><sub>3887</sub></td>
<td>0.3%<br><sub>3370</sub></td>
<td>11.6%<br><sub>134195</sub></td>
<td>2.2%<br><sub>24961</sub></td>
</tr>
<tr>
<td><i>Errors strict</i></td>
<td>6.8% 🥇<br><sub>78676</sub></td>
<td>6.7% 🥇<br><sub>77945</sub></td>
<td>58.1%<br><sub>674922</sub></td>
<td>55.7%<br><sub>647070</sub></td>
<td>55.7%<br><sub>646831</sub></td>
<td>27.7%<br><sub>321494</sub></td>
<td>57.7%<br><sub>670318</sub></td>
</tr>
<tr>
<td><i>Time</i></td>
<td>226s · 523s · 309s</td>
<td>80s</td>
<td>1709s<sup>(*)</sup></td>
<td>214s · 471s · 240s</td>
<td>85s</td>
<td>2331s<sup>(*)</sup></td>
<td>8151s<sup>(*)</sup></td>
<td>9.4s</td>
</tr>
Expand All @@ -371,25 +371,25 @@ $ cast selectors --resolve $(cast code 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc
</tr>
<tr>
<td><i>Errors strict</i></td>
<td>11.4% 🥇<br><sub>2410</sub></td>
<td>4.2% 🥇<br><sub>888</sub></td>
<td>100.0%<br><sub>21166</sub></td>
<td>91.0%<br><sub>19253</sub></td>
<td>100.0%<br><sub>21166</sub></td>
<td>59.6%<br><sub>12610</sub></td>
</tr>
<tr>
<td><i>Time</i></td>
<td>3.7s · 8.7s · 5.1s</td>
<td>2.2s</td>
<td>59s<sup>(*)</sup></td>
<td>10s · 15s · 10s</td>
<td>2.4s</td>
<td>41s<sup>(*)</sup></td>
<td>28s<sup>(*)</sup></td>
<td>0.6s</td>
</tr>
</table>

See [benchmark/README.md](./benchmark/) for the methodology and commands to reproduce these results

<i>versions: evmole v0.4.1; <a href="https://github.com/shazow/whatsabi">whatsabi</a> v0.14.1; <a href="https://github.com/acuarica/evm">sevm</a> v0.6.19; <a href="https://github.com/g00dv1n/evm-hound-rs">evm-hound-rs</a> v0.1.4; <a href="https://github.com/Jon-Becker/heimdall-rs">heimdall-rs</a> v0.8.4</i>
<i>versions: evmole v0.5.1; <a href="https://github.com/shazow/whatsabi">whatsabi</a> v0.14.1; <a href="https://github.com/acuarica/evm">sevm</a> v0.7.2; <a href="https://github.com/g00dv1n/evm-hound-rs">evm-hound-rs</a> v0.1.4; <a href="https://github.com/Jon-Becker/heimdall-rs">heimdall-rs</a> v0.8.4</i>

<sup>(*)</sup>: <b>sevm</b> and <b>heimdall-rs</b> are full decompilers, not limited to extracting function selectors

Expand Down
2 changes: 1 addition & 1 deletion benchmark/Makefile
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
PROVIDER_BASE = etherscan
PROVIDERS_SELECTORS ?= simple whatsabi evm-hound-rs sevm evmole-rs evmole-js evmole-py
PROVIDERS_ARGUMENTS ?= simple evmole-rs evmole-js evmole-py
PROVIDERS_MUTABILITY ?= simple evmole-rs evmole-js evmole-py sevm
PROVIDERS_MUTABILITY ?= simple whatsabi sevm evmole-rs evmole-js evmole-py
#heimdall-rs

DATASETS ?= largest1k random50k vyper
Expand Down
2 changes: 1 addition & 1 deletion benchmark/compare.py
Original file line number Diff line number Diff line change
Expand Up @@ -273,7 +273,7 @@ def show_arguments_or_mutability(providers: list[str], all_results: list, show_e
elif cfg.mode == 'arguments':
cfg.providers = ['etherscan', 'evmole-rs', 'evmole-js', 'evmole-py', 'simple']
else: # mutability
cfg.providers = ['etherscan', 'evmole-rs', 'evmole-js', 'evmole-py', 'sevm', 'simple']
cfg.providers = ['etherscan', 'evmole-rs', 'evmole-js', 'evmole-py', 'whatsabi', 'sevm', 'simple']
print('Config:')
print('\n'.join(f' {field} = {getattr(cfg, field)}' for field in vars(cfg)), '\n')

Expand Down
2 changes: 1 addition & 1 deletion javascript/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ import { functionSelectors } from 'https://cdn.jsdelivr.net/npm/evmole/+esm';
<div id="selectors"></div>

<script type="module">
import { functionSelectors } from 'https://cdn.jsdelivr.net/npm/evmole@0.4.1/dist/evmole.mjs';
import { functionSelectors } from 'https://cdn.jsdelivr.net/npm/evmole@0.5.1/dist/evmole.mjs';
const bytecode = '0x6080...'; // Replace with actual bytecode
document.getElementById('selectors').textContent = functionSelectors(bytecode);
Expand Down

0 comments on commit a4ddacb

Please sign in to comment.