Avatar for the BobTheBuidler user
BobTheBuidler
faster-eth-abi
BlogDocsChangelog

perf: compile ContextFramesBytesIO to avoid pythonic BytesIO overhead

#412Merged
Comparing
io-fast-reader
(
cd692b2
) with
master
(
cf4807e
)
CodSpeed Performance Gauge
-21%
Improvement
369
Regression
3
Untouched
5323
Skipped
9591

Benchmarks

15286 total
test_faster_decode[uint8[100]-[0, 1, 2, 3, 4, ]
benchmarks/test_abi_benchmarks.py
CodSpeed Performance Gauge
-21%
35.2 ms44.3 ms
test_faster_decode[uint8[10]-[0, 1, 2, 3, 4, ]
benchmarks/test_abi_benchmarks.py
CodSpeed Performance Gauge
-12%
4.7 ms5.3 ms
test_faster_tuple_decoder[arrs]
benchmarks/test_decoding_benchmarks.py
CodSpeed Performance Gauge
-7%
2.7 ms2.9 ms
test_faster_contextframesbytesio_push_pop[50]
benchmarks/test_io_benchmarks.py
CodSpeed Performance Gauge
×2.8
26.6 ms9.3 ms
test_faster_contextframesbytesio_push_pop[10]
benchmarks/test_io_benchmarks.py
CodSpeed Performance Gauge
×2.7
5.2 ms1.9 ms
test_faster_contextframesbytesio_push_pop[5]
benchmarks/test_io_benchmarks.py
CodSpeed Performance Gauge
×2.6
2.6 ms1 ms
test_faster_contextframesbytesio_push_pop[1]
benchmarks/test_io_benchmarks.py
CodSpeed Performance Gauge
×2.1
632.5 µs296.4 µs
test_faster_contextframesbytesio_init[4096]
benchmarks/test_io_benchmarks.py
CodSpeed Performance Gauge
+78%
2.9 ms1.6 ms
test_faster_contextframesbytesio_init[1024]
benchmarks/test_io_benchmarks.py
CodSpeed Performance Gauge
+78%
2.9 ms1.6 ms
test_faster_contextframesbytesio_init[32]
benchmarks/test_io_benchmarks.py
CodSpeed Performance Gauge
+78%
2.9 ms1.6 ms
test_faster_contextframesbytesio_init[65536]
benchmarks/test_io_benchmarks.py
CodSpeed Performance Gauge
+77%
2.8 ms1.6 ms
test_faster_contextframesbytesio_init[0]
benchmarks/test_io_benchmarks.py
CodSpeed Performance Gauge
+77%
2.8 ms1.6 ms
test_faster_decode[(bytes[],string[])-([], [])]
benchmarks/test_abi_benchmarks.py
CodSpeed Performance Gauge
+59%
5.6 ms3.5 ms
test_faster_decode[(string[],bytes[])-([], [])]
benchmarks/test_abi_benchmarks.py
CodSpeed Performance Gauge
+59%
5.6 ms3.5 ms
test_faster_decode[string[]-[]0]
benchmarks/test_abi_benchmarks.py
CodSpeed Performance Gauge
+57%
2.7 ms1.7 ms
test_faster_decode[string[]-[]1]
benchmarks/test_abi_benchmarks.py
CodSpeed Performance Gauge
+56%
2.7 ms1.7 ms
test_faster_decode[bytes[]-[]0]
benchmarks/test_abi_benchmarks.py
CodSpeed Performance Gauge
+56%
2.7 ms1.7 ms
test_faster_decode[bytes[]-[]1]
benchmarks/test_abi_benchmarks.py
CodSpeed Performance Gauge
+56%
2.7 ms1.7 ms
test_faster_decode[(uint8[2][2][],string[])-([], [])]
benchmarks/test_abi_benchmarks.py
CodSpeed Performance Gauge
+55%
5.4 ms3.5 ms
test_faster_decode[(uint8[2][],string[])-([], [])]
benchmarks/test_abi_benchmarks.py
CodSpeed Performance Gauge
+55%
5.4 ms3.5 ms
test_faster_decode[uint8[][]-[[]]]
benchmarks/test_abi_benchmarks.py
CodSpeed Performance Gauge
+54%
4.2 ms2.8 ms
test_faster_string_decoder['d' * 8192]
benchmarks/test_decoding_benchmarks.py
CodSpeed Performance Gauge
+50%
3.5 ms2.3 ms
test_faster_decode[fixed32x2[]-[]0]
benchmarks/test_abi_benchmarks.py
CodSpeed Performance Gauge
+50%
2.6 ms1.7 ms
test_faster_decode[uint8[2][2][]-[]]
benchmarks/test_abi_benchmarks.py
CodSpeed Performance Gauge
+50%
2.6 ms1.7 ms
test_faster_contextframesbytesio_seek_in_frame[50]
benchmarks/test_io_benchmarks.py
CodSpeed Performance Gauge
+50%
10.2 ms6.8 ms

Commits

Click on a commit to change the comparison range
Base
master
cf4807e
-31.76%
perf: speed up ABI decoding by avoiding BytesIO overhead
d80b989
27 days ago
by BobTheBuidler
+0.38%
Update _decoding.py
3e80a50
27 days ago
by BobTheBuidler
-0.4%
perf: restrict io inputs to bytes for faster decoding
ceb72db
27 days ago
by BobTheBuidler
0%
docs: clarify bytes-only init to keep decode path fast
2ed7d2e
27 days ago
by BobTheBuidler
+11.22%
Update setup.py
cd692b2
27 days ago
by BobTheBuidler
© 2026 CodSpeed Technology
Home Terms Privacy Docs